[음악 연주] DAVID 마란 :이 CS (50), 및 인 이 주 아홉의 시작입니다. 그리고 우리가 오늘 우리가 할 거라고 생각하는 것은 아니다 단지 지난 주에 장을 닫습니다 우리가 서버에 집중 재료 PHP와 SQL 측면 웹 프로그래밍, 일부 데이터베이스 물건. 우리는 약간의 얘기하자 보안 오늘 다음 클라이언트 측 프로그래밍 전환 자바 스크립트로 알려진 언어. 하지만 먼저, 어떤 구속. 당신은을에 대한 회상 수요일, 나는 착수 웹 사이트를 작성하는 그 사용자의 입력에 갔다 HTML로 그 다음 저장 형성 사용자 입력 이름, 전화 번호, 휴대 전화 데이터베이스에있는 사업자. 그리고 나는 조금 명령을했다 행 스크립트는 PHP로 작성된 그는 반복했는데 데이터베이스 행 위에 문자 메시지를 보낼 수 있습니다. 몇 가지, 몇 번의 시도에도 불구하고, 우리 말에 그 작업을하지 않았다. 그래서 작업이 전체 주 소요 그 코드에 지점을지나 우리를 얻을 수 우리가 중단 된 경우, 이에 모든 나는 수요일의 말 있어요 이 텍스트 메시지는이었다 나는 고투 마고에서 서로 문자 메시지 뒤에 동급생,이 다윗을 가지고있다. 이것에 이어, 놀랍도록 격려. 예정에 보관하고, 매우 고무적인. 나는 거의 그러고 나서 ... 때까지 그것을 가지고와 그것은 우리가 수요일에 종료 메모입니다. 그리고 실제로 아마 내가 제일 좋아하는, 잠시 후,이 들어왔다. 이런 스트림을 살고 있습니다. 그래서 오늘, 우리는이 빠른로 해결 나는 이후 무슨 짓을했는지 봐. 그래서이 모든 코드를 사용할 수 있습니다 온라인 지난 주, 8 주간에서, 소스 코드. 그리고 당신은, 내가 겪은 것을 볼 수 있습니다 나는 실제로 약간의 물건을 정리. 나는 몇 다른 소개 SQL 데이터베이스의 기능을 제공합니다. 예를 들어, 대신 다만 VAR의 문자의 캐리어를 만들 내가 생각하는 나는 지난 주에 즉석에서했다. 내가 대신으로 정의 무슨 일이 열거라고합니다. 그리고 당신 중 일부는 본 적이 수도 우리가 탐구로 C. 열거는 실제로 C의 기능을 수행 할 수 있습니다 상수의 전체 무리를 열거 자동 값을 할당, 하나, 둘, 셋, 넷 등 하드 코드 번호 필요없이. 그래서이 경우 SQL함으로써, 동일한 지원 당신은 데이터베이스 필드가 당신 만 유한 중 하나를 먹고 싶어 값은, 당신은 문자 그대로를 지정할 수 있습니다 나는 네 거기에했던 것처럼 인기있는 미국의 휴대 전화 사업자. 그래서 내가 그랬어. 그리고는 많은 변화를 만들어 물론, 가장 중요한 어떤의 이메일 리콜 때문에 작업을 진행하게되었다, 이 프로그램은에 의존하는 것이 일반적으로 이메일라고 그냥 SMS 게이트웨이, 그 버라이존을 말하는 멋진 방법, 및 AT & T, 그리고 다른 사람들은, 서버를 지원 이에이 수신한다면 이메일, 그것은 SMS로 변환 과 텍스트를 전송 누군가의 전화에 메시지. 내가 정확히 이런 짓을한다면, 여기에 새롭게 개선 된 형태이다 그 이야기 것입니다 새로운 및 향상된 코드, 어떤 온라인으로 재생할 수 있습니다. 그리고 희망을 만들 것 내 단지 순간에 전화 신​​호음. 그래서 첫 번째, 나는 나의 이름을 입력거야. 둘째, 나는 않을거야 이이 시간에해야 할 일. 나는 요소를 검사 할거야. 그리고 이것은 단지이다 작은 일 그래서 나는하지 않습니다 포스트 프로덕션의 시간을 만들 나는 지난 시간에했던 것처럼 작동합니다. 지금 내 전화 번호가있다. 나는 버라이존을 선택합니다. 그리고 여기의이 마이크를 돌려 보자 여기, 여기 내 휴대 전화에이를 목표로하고 있습니다. 나는, 등록을 클릭거야 어느해야 희망 데이터베이스에 넣어. 지금은에 갈거야 명령 줄 프로그램, 어떤 리콜 점 슬래시 호출 텍스트, 손가락을 교차. 여기에 우리가 간다. [전화 종소리] [박수] DAVID 마란 : 이런것보다 그래서 더 재미 내가 들어갈 경우는 물론, 재미 있어요. 그러나이 경우, 생각보다 재​​미 우리 그 영화 순간 중 하나 생성 여기서 뭔가처럼 정말 나쁜, 세계에서 일어난 모든 NSA 사람들처럼 휴대 전화는 경고음 시작 문자 메시지와 이 사실로 경고. 그래서 우리가 시도 할 것이라고 생각 여기에 같은를 다시 만들려면 데이터베이스를 사용하지 않고, 이에 내가 대신 사전에 이처럼 보이는 프로그램을 작성. 이 index.php--입니다 나는 온라인이 코드를 넣어 글쎄 ...과 분명히 다만, form.php 렌더링 MVC 스타일의 패러다임을 사용하여 해당 우리 문제 설정에서 자세히 이야기 일곱. 그 형식은 매우 간단하다. 그것은 제출 것 포스트를 통해 here.php라는 파일. 그리고 그것은 분명히 물어 것 이름 및 전화 번호에 대한, 다음의를 통해 소위 메뉴를 선택, 그것은이다 당신에게 적어도 네 줄 것 인기있는 미국의 휴대 전화 사업자, 다음 효과적으로 할 수 있도록 여기를 클릭하여 출석을. 그리고 여기, 그 사이에, 것입니다 마지막에서 코드의 일부를 빌려. 그리고 당신이이 탈지 경우, 당신은이 있다는 것을 볼 수 있습니다 오류 검사의 전체 무리. 그러나 끝의 아름다움이 있다는 것입니다 오늘 우리가 데이터베이스에 기록되지 것입니다. 우리는 간단하게 유지하고 있고 단지 희망 발송 함수 I를 통해 텍스트 메시지 지난 몇 일 전화를 통해 작성 기능에 텍스트,. PHP, 이는 온라인 다시 사용할 수 있습니다. 그래서 만약 당신이에 참여하고 싶습니다. 우리는 아무것도 저장하지 않을 것입니다. 실시간으로 여기에이 URL로 이동합니다. 아직 제출, 그러나의를 두지 마십시오 우리가이 영화의 하나를 가질 수 있는지 순간 어디 사람의 휴대폰 시작 잘하면 그냥 경고음 이 년에 한 번 달리 2011 년 곳이 끔찍하게 비스듬히 갔다. 그리고 당신은 그 주소로 이동하면, 당신은 슈퍼 간단한 양식을 볼 수 당신이 이름이있는 경우, 휴대 전화 번호, 휴대폰 캐리어 그 이 목록과 일치, 이동 앞서와 양식을 작성. 그러나 때리지 마세요 아직 제출합니다. 형태는 다음과 같이 할 것입니다. 가서 입력 당신의 이름, 전화 번호. OOP는, 누군가가 앞서 곡선의 것입니다. 괜찮아요. OK, 모든 사람이 양식을 작성합니다. 이 작업을해야합니다 전화, 당신이 원하는, 너무합니다. 좋아, 설정 얻을 선에 잘 이동합니다. 여기에서 누르십시오. 무엇을? 아니오. 하늘에 맹세코, 나는 테스트 이 여러 번 오늘. 당신은 그것을있어? [목소리를 개재] DAVID 마란 : OK, 사​​용자 오류 아마도. 즉 두 가지입니다. 이 중 2 개 근무 백, 세, 네 약간. 좋아, 좋아. 다섯 중 4에 대한 방법에 대한 정확성. 그래서 그냥 일이야? 그래서 아마도, 보지 못하는 화면은 왜이 오류가 발생한 겠는가? 그것은 우리가 있다고 아마 너무 많은 연결을 만들려고 노력 모든 하버드의 메일 서버에 일단 동일한 IP 주소에서. 내가하지 않았다 때문에 그냥 추측하고있어 테스트의 사치를 누릴 수 어떤이 코드 사전에 3백명 하지만 지금은 그 실현 적어도해야 그 이 시간을 일을 입수했습니다. 좋아, 그래서 왜이 모든 무슨 일이 일어나고 있는지에 더 밀접한? 그럼 먼저, 빠른 발표의 커플. 그래서 하나, 당신이 장을 가입하려는 경우, 그리고 점심 시간에 닉, 그리고 다른 사람이 금요일 이 일반적인 URL에서 RSVP을한다. 당신은 집중을 생각하는 경우 또는 CS에서 보조를하고, 당신이 학년 있든, 또는 신입생, 심지어 중학교 또는이 시점에서 수석 아직도 과정에서 수 있겠 어, 실현 공과 대학이 무료 벤 수집하고, 제리 아이스크림과 조언 이 수요일 직후 클래스 CS 건물에서 오후 4시 맥스웰 드워킨에서. 이 너무 빠른 경우 화면에 바로 가기 에 대한 cs50.harvard.edu합니다 페이스 북 이벤트에 링크 당신은 어디에서 자세한 내용을 볼 수 있습니다. 한편, 내가 해결 것이라고 생각 한 가지 내가 수요일에 놓 쳤어. 마크의 ID 밝혀 페이스 북에 세 가지가 아니었다. 그것은 4 살. 알고 보니 그는 더 테스트를했다 계정은 내가 기억보다. 하지만이 기회 느낌을 어떻게 이런 URL을 당겨하는 것입니다. 그래서 페이스 북이 있는지 밝혀 API, 응용 프로그램 프로그래밍 인터페이스, 하는 메커니즘함으로써 당신입니다 프로그래밍 방식으로 데이터를 요청할 수 있습니다 페이스 북에서하는 기계를 다시 얻을 읽을 수있는 정보가 아닌 웹 페이지 하지만 단지 원시 텍스트, 뭔가 자바 스크립트 객체 표기법이라고합니다. 그리고 사실, 경우에게 나는이를 방문 URL, 그리고 기본적으로 확대 이 공개적으로 마크입니다 접근 가능한 정보. 그리고 흥미로운 세부 사항 여기에 단지 자신의 ID입니다 , 참으로 네 번째, 인 I 최대한 빨리이 그랬던 것처럼 깨달았다. 당신이 알고있는 경우이 스스로 할 수있는 페이스 북 사용자 이름 해당시. 그냥이 정상 그것을 입력합니다. 그리고이 중 어느 것도 개인입니다. 난 그냥도이 일을 해요 시크릿 모드. 그래서 난에 기록 아니에요. 그리고 당신은 내가보고있어 분명히 사용자 수 6,454이었다 아니다 페이스 북에 요즘 너무 나쁘다. 그래서 어쨌든, 당신은 또한 볼 수 있습니다 이 추가 정보를 제공합니다. 그리고 유용한 측면 그 너야 자신의 소프트웨어를 쓸 수있는 어떻게 든이 같은 데이터를 통합 자신의 응용 프로그램에. 당신은 사용자에게 권한을 부여 할 수 있습니다 귀하의 웹 사이트에 로그인 자신의 사용자 정의 이름을 사용하지 않는 및 비밀번호하지만 어쩌면 자신의 페이스 북 로그인 심지어 정보를 얻을 수 자신의 친구에 대한, 그들은 같은 또는 유사한 승인합니다. 그래서, 너무, 그 CS50주의 자신의 API 중 일부는,이 물론 카탈로그 데이터에 대한 하나, 식당에서 포옹 메뉴에 대한 몇 가지 홀, 모든 건물 및 위치 캠퍼스에서 우리는뿐만 아니라위한 API를 당신은 유사하게 조회하고 얻을 수 당신이 통합 할 수 있습니다 다시 텍스트 데이터 PHP 나 자바 스크립트로, 또는, 비록 적은 일반적으로, C는 최종 프로젝트를 기반으로. 실제로 앞서 결승전 이 프로젝트는 몇 가지 이정표입니다. 당신은 다른 일 우리로부터 이메일을 받았습니다. 제안 실현 오는 월요일 예정이다. 그것은 반드시 바인딩,하지만 아니에요 당신의 조교를받을 필요가 승인하기 전에 그 후 변경 사항이 적용됩니다. 그리고 앞서 있습니다 다른 이정표의 숫자. 그래서 너무, 당신을 괴롭혀, 몇 가지 가능성과 함께, 우리의 무리가 이러한 색상의 전구입니다. 그리고 너희들 중 일부는 지금 일부가 기숙사에서 이들뿐만 아니라. 그리고 그들은 너무 API를 가지고있다. 그래서 그 바이너리 전구 주를 기억 전 그 댄 브래들리와 안젤 더프는 우리를 위해 만들었습니다. 그들은에 소프트웨어 인터페이스를 사용 이 전구, 순간에있는 전기에 연결되어 다음 무선을 통해 작은 일에 접속되고 여기 아래 다리라고 작은 라우터 독점 같은 이 특정 장치에 관한 것이다. 나는이 방법을 알고있는 경우 그러나 그것은 밝혀 우리 모두가 지금처럼, HTTP 메시지를 보내, 나는이 같은 메시지를 보낼 수 있습니다 이 전구를 켜거나 끄려면 또는 임의의 수의 작업을 수행 거기에 다른 작업. 그것은하지 있다고,이 게시하지 고시. 풋라는 또 다른 하나가있다. 실제로 몇 등의 동사가있다. 그러나, 경로가있다 통지 , API를 슬래시 새로운 개발자를 슬래시 상태를 슬래시를 슬래시, 빛을 슬래시. 그건 분명히 그냥있어 경로 그 회사, 필립스, 당신은 쳐야 않기로 결정 HTTP 요청을 가진 당신은 상태를 변경하려는 경우 HTTP 1.1을 사용 전구. 그런 다음 빈 줄을 알 수 있습니다. 그리고 마지막으로 무엇처럼 보인다 일종의 배열 가지, 이것은 다시 호출 될 것입니다 자바 스크립트 객체 표기법, 또는 제이슨. 그리고 당신이 여기에서 보는 것은 점이다 세 개의 키 값 쌍있다. 하나의 키에라고합니다. 그리고 그 값 분명히 사실 일 것입니다. 밝기는 128입니다 INT의 일종이다. 그리고 전이 시간은 분명히 제로, 그것은에 무슨 시간 에이 일을 설정하기 위해 수행. 그래서 지금이 전구는 꺼져 있습니다. 내가 정확하게 수행한다면하자이 겁니다 나를 조금 컨닝 페이퍼로 이동 댄에 설정하는 것이 advance-- 나는거야 가서 복사 다음 명령. 컬, 당신의 일부로서 CS50에 수집 수도 토론 텔넷 등과 같은 유틸리티입니다 당신이 HTTP 요청을 시뮬레이션 할 수있는, 특히 넣습니다. 나는이 데이터를 보낼 수 있습니다, 특히 우리 단지 전 특히 순간을 보았다 여기에이 URL에. 그리고 컬 처리 할 것입니다 필요한 모든 헤더 거기의 분석. 그래서 내가 할 일은이 점을 복사하다 다음 터미널 창 및 입력하고 Enter 키를 누르십시오. 그리고 전구는 계속된다. 그리고이 모든 일을 겪고있다 내 컴퓨터에 무선으로 어떻게 든 다리 아래로 어떤 다음이 전구에 얘기하고있다. 나는 다른 일을 할 수 있습니다. 나는이 일을 할 수 있습니다 예를 들어 빨간색 이동합니다. 내가 예를 들어 수 이 일을 녹색으로 이동. 나는 파란색 갈 수 있도록 할 수 있습니다. 그리고 이들 각각 예고 인스턴스, 내가 변화하고있어 모든 이른바 색조 값은 실제로 몇 가지 색상을 제공합니다. 그래서 나뿐만 아니라이 하나를 붙여 보자. 지금은 파란색입니다. 그리고 당신도 뽑아도 할 수있다 가지의 녹색 가자 그 곳. 그리고 나는이 작업을 수행 할 수 내 자신의 코드와 과정. 그러나 심지어 API 자체 펑키 작업을 지원합니다 이처럼, 지금 어떤 방해합니다 다음 30 초 동안 우리. 그래서 그 중 하나 맛이 무엇을 당신은 수도 API와 수행이 하나 포함 전구. CS50은 몇 가지가 있습니다 구글 글래스 쌍 당신이하려는 경우 함께 뭔가를 해결하기 좋아 그 라인, 아두 이노 Uno 스피커, 어떤 작은 작은 컴퓨터는, 본질적으로, 작은 회로 기판 당신이 연결할 수 전선 및 다른 것들 에 실제로 제어 당신의 실제 환경을 제공합니다. 그리고 몇가 우리가 새로운 장난감. 이것은 문자 그대로 방금 도착 메일로 다른 날, 묘 완장. 그리고 난에 대한 방법 생각 당신은 프로젝트에 대해 흥분 당신은 함께 사용할 수있는 이 하드웨어 것 이 짧은 클립을 재생하는 그들은 사람들을 애타게하는 데 사용하는 우리는 지금 미래에 살고있다. [음악 연주] DAVID 마란 : 몇 주에 따라서 너무 CS50 박람회에서 그 멋진 될 수 있습니다. 또 다른 장치가 우리 우리가 걸의 무리가 프로젝트에 대한 대출하고 행복 모션 컨트롤러라고한다. 이 작은 USB 장치입니다 당신은 컴퓨터에 연결하는 것이 당신과 상호 작용할 수 있습니다 노트북, Mac 또는 PC, 당신은 X 박스 키 넥트와 같은 것처럼 실제로 많은 물리적 움직임을 같은 우리는이에 참조 미래의 비전. [음악 연주] DAVID 마란 : 그래서 당신이 경우에도 아무 생각이 어떻게 그런 일 아마도 발명 또는 작업 할 수있다 하드웨어 레벨에 상관없이합니다. 심지어 CS50의 몇 달 후, 프로그래밍의 이해 보다 일반적으로, 웹 프로그래밍보다 최근에, 다음도 API 및 HTTP, 당신은을 통해 액세스 할 수 있습니다 소프트웨어 API를 사용하면 경우 이들 중 하나를 빌려하고 싶어 장치는 실제로 이야기하기 과에 대해 걱정할 필요가 없습니다 기본이되는 구현 완전히 세부 사항, 레이어의이 개념과 일치 우리가했습니다 추​​상화 학기 전반에 걸쳐 본. 그래서 또한 지난 주말, 뉴스의 몇 조각을 보았다. 세미나에 가서, 먼저 가서 당신 경우 뭔가를 배우고 싶습니다 주제의 수에 대한 자세한. 이 URL을 참조하십시오. 그리고 하나에 보내졌다 당신이 알고있는 장에 의해 나, 사람들은 코끼리의 우리의 군대를 인쇄합니다. 다음과 같이 그리고 헤드 라인이었다. 나는 나의 새로운 TV 무서워. 내가 무서워 왜 전원을 켭니다 당신의 일이 너무 것. 그래서 우리는 지금에있어 학기 지적, 또한, 어디를가더라도 이해의 사소한 웹이 어떻게 작동하는지, 그리고 HTTP의, 이 같은 보안 상황 눈을 잡기 시작합니다. 뿐만 아니라, 당신은 이해합니다 이러한 일들은인지 여부 실제 위협. 그래서 몇 가지 발췌했다 여기에이 문서에서. 다음과 같이 그리고 이야기이다. 지금의 소유자 해요 새로운 스마트 TV, 어떤 스트리밍을 제공 할 것을 약속 멀티미디어 콘텐츠, 게임, 어플리케이션, 소셜 미디어, 인터넷 검색, 너무 오와 TV. 유일한 문제는 내가 지금 걸이다 그것을 사용하기를 두려워 저자는 말한다. 당신이를 통해 읽는다면 당신도 될 것이다 당신의 TV에 대한 46 페이지의 개인 정보 보호 정책. 이러한 데이터의 양은 물건를 수집 비틀 거리고있다. 그것은 기록 어디서, 언제, 어떻게, 그리고 에 얼마나 오래 TV를 사용합니다. 그것은, 쿠키 추적 설정 우리는 토론 한 바와 같이, 비컨 설계 당신이 감지합니다 볼 특정 콘텐츠 나 특정 이메일 메시지 당신은 당신의 TV에 이메일을 확인합니다. 이 앱을 기록하면 사용, 당신이 방문하는 웹 사이트, 및 콘텐츠와 상호 작용하는 방법, 스마트 TV를 통해이 모든 일을. 또한 그것은 오싹 yet-- 그건 내 addition--의 카메라에 내장되어 얼굴 인식과 함께. 목적은 제공하는 것입니다 TV에 제스처 제어 과에 로그인 할 수 있습니다 당신의 얼굴을 사용하여 계정을 맞춤. 위쪽에, 이미지는 TV에 저장하는 대신 업로드 회사 서버에. 단점으로, 인터넷 연결은 전체 TV를 만든다 해커에 취약 사람 능력을 증명하고있다 시스템을 완전히 제어 할 수 있습니다. 더 골치 아픈, 것처럼 그 아니었다 똑똑, 마이크입니다. TV는 음성을 자랑합니다 인식 기능 즉, 시청자가 제어 할 수 있습니다 음성 명령으로 화면. 그러나 서비스와 함께 제공 오히려 불길한 경고. 유의하십시오 경우 그 당신의 음성 단어 포함 개인 정보 나 민감한 다른 정보, 그 정보 캡처 된 데이터 사이에있을 것입니다 및 제 3 자에게 송신된다. 알 겠어? 개인 정보 나 민감한 말하지 말라 TV의 앞에 물건. 그래서이 진짜 사실이다. 그리고 그것은 어려운 당신이 있는지 확인하지 베스트 바이 (Best Buy)로 이동하거나 TV 용 등 요즘. 그들은 어떤 방법으로 모든 똑똑. 그리고 그들은 있어요 똑똑하고 오싹. 그리고 그들은 단순히 데이터를 수집하고 우리가 이야기 한 방법으로 다음 HTTP 또는 통해 업로드 일부 서버에 다른 프로토콜. 그래서이 재미있는 글이었다 이 온라인 웹 사이트에서 여기에, 이는 이야기 특정 버그 나 잘못된 코드 우리는 실제로 묶을 수 있음 지난 주 토론에. 그래서이 헤드 라인으로했다 , 다음 이야기는 간다 조쉬 Breckman은 근무 계약을 착륙 기업 콘텐츠 관리를 개발 시스템, 또는 호출하고 같이 CMS, 상당히 큰 정부 웹 사이트에 대한. 관련 프로젝트의 대부분 콘텐츠 관리 시스템을 개발 직원이 될 것이라고 그래서 구축 및 유지 관리 할 수 끊임없이 변화 자신의 사이트에 대한 콘텐츠입니다. 일이 잘 꽤 갔다 생중계 후 몇 일. 그러나 여섯째 날에, 일이 잘되지 갔다. 의 모든 콘텐츠 웹 사이트는 완전히 사라졌다했다. 그리고 모든 페이지는 기본되었다, 콘텐츠 웹 페이지를 입력하십시오. 아차. 조쉬는에 호출 조사 및 발견 특히 골칫거리 하나 외부 IP 주소를 가지고 에서 사라지고 모두 삭제 시스템의 내용. IP 주소는 속하지 않았다 일부 해외 해커 구부러진에 도움이 파괴에 정부의 정보. 그것은 googlebot.com하기로 결심 구글의 자신의 웹 크롤링 거미. 아차. 연구 및 스크램블링 약간의 후 주위에 noncorrupt 백업을 찾을 수 있습니다, 조쉬 문제를 발견했다. 사용자가 복사 한과 하나에서 일부 내용을 붙여 다른 페이지 포함 하이퍼 링크 편집 페이지의 내용을 편집 할 수 있습니다. 일반적으로이되지 않을 것 외부 사용자 이후 문제는 것 이름과 암호를 입력해야합니다, 그러나 CMS 인증 시스템, 로그인 시스템, 고려하지 않았다 정교한 해킹 구글 거미의 기술. 아차. 그것이 나오는 것에 따라, 구글 거미는 사용하지 않습니다 그것을 할 수 있다는 것을 의미 쿠키, 쉽게에 대한 검사를 무시할 수 쿠키 세트에 로그온하는 것은 거짓입니다. 또한에 관심을 지불하지 않습니다 자바 스크립트, 이는 평소 메시지를 표시하고 사용자를 리디렉션 누가 로그인하지 않았습니다. 그러나 그것은 모든를 따르지 발견 한 모든 페이지에 하이퍼 링크, 에 포함 페이지의 제목을 삭제합니다. 아차. 그래서 더 무엇을 의미 하는가 기술하지만 상당히 접근 용어? 그것은 단지 것을 의미한다 자신의 웹 사이트를 통해, 그들은이 하나 달리 URL을했으나, 그 문제가 일곱 설정에서 당신은 볼 수 있습니다. 문제의 리콜은 일곱 설정 또는 문제를 알고있는 일곱 설정 당신은 도전을하고 있는지, 다른 것들 사이에, 사용자를 대신하여 주식을 판매합니다. 그러나 방법에 의해 그 기능을 구현 의 사용자에 하이퍼 링크를 통해 얻을 인터페이스, 아마 하지 똑똑한 아이디어 귀하의 사이트가 어떻게 든 경우 때문에 으로 접속하거나 인간에 의해 누가 주위에 클릭하거나 살 것 구글의 또는 거미처럼 봇 그들이라는 것로 그 단지 인덱스하려고 웹을 크롤링 검색 엔진과 같은 웹, 그들은 아주 쉽게 할 수 URL의이 종류를 얻을 통해했다. 그리고 그 기능의 당량에 대하여,이 경우, 구글의 모든 주식을 판매. 이제 솔직히, 그것은 완전히이다 나귀가 CMS 사용되는 자바 스크립트와 쿠키 그 로그인 시스템을 구현 하고, 해당 서버 쪽 일을하지 너희들은 PSET에서 할과 의지 7 - login.php가있다 항상 file--, 항상, 항상 보안해야 서버 측에서 수행, 되지 클라이언트 측에서,이 때문에로서 기사는 제안과 자신을 수도 그것이, 어떤 시점에서 볼 , 사용자에 대한 사소한 좋은 또는 나쁜, 바로 자바 스크립트를 해제하려면 쿠키를 언급 할 필요가 없을 것입니다. 그래서 매일 WTF이다. 하나 더, 거기에있는 단지 종류의 무서운 그래서 나는 경우를 언급합니다 단지 삶의 교훈. 당신은 응용 프로그램을 사용할 때마다 스냅 챗 등처럼 호출 즉이 사진은 지속 말한다 오초 10 초 또는 이것 저것. 그들은 즉 임시있어 절대적으로 그렇지 않습니다. 디지털, 방법이없는 것처럼, 비디오의 일부 형태를 구현하기 위해, 또는 이미지 또는 텍스트 등을 공유 그 다른 쪽 끝에서받는 사람 어떻게 든 데이터를 저장할 수 없습니다. 가장 소박한 방법으로, 사람 자신의 휴대 전화 걸릴 수 있습니다. 그리고 그들은 10 번째 창을 약간의 스냅을 보면서 그냥 다른 전화를 취할 분명, 그것을 사진. 그래서 당신은 보존 할 수 있습니다 디지털 뭔가 그런 식으로. 여러분 중 일부는하는 방법을 알고 휴대 전화의 스크린 샷. 사실, 당신이 모르는 경우, 실현 적어도 스냅 챗 그, 나는 다른 생각 애플리케이션 요즘, 적어도 경우 당신에게 받는 사람이 실제로있다 이미지의 스크린 샷을 촬영. 그러나 더 나쁜 아직,이 snappening이었다, 누군가가 최근에 만들어 낸으로, 여기서 10 만명 스냅 발표했다 토런트 파일 불리는 것에 다양한 웹 사이트에 궁극적으로. 그리고 이러한 왕창 포함 비공개 메시지 및 게시물. 그것은 대부분 양성 밝혀 그래서 당신은 예상 할 수없는 무엇. 그러나 사람들이 있었다 때문에 써드 파티 웹 사이트를 사용 그들의 스냅 챗으로 로그인 사용자 이름과 암호 다음 자신의 스냅을 모두 절약 이 타사 웹 사이트에서 찾아 볼 수 있습니다. 그리고 제 3 자했다 해킹 된 웹 사이트, 이는 단지 의미 누군가가 알아 낸 방법 그 이미지의 모든 10 만 플러스를 얻으려면 자신의 하드 드라이브에 이후 공유. 솔직히, 여기에 너무, 그것은 일종의 의 나귀 그 스냅 챗 이러한 방식으로 구현되었는지 제 3자가 절편의 정렬 할 수 있습니다 데이터와이에 묶여 아니에요 당신의 휴대폰에서 실행되는 자신의 응용 프로그램. 그러나 여기, 너무, 이러한 것을 실현 가지, 놀라운 당신을 잡을 안 적어도이해야 여기에 삶의 교훈. 당신은 기술을 원하는 경우 자세한 내용은이 해당 URL로 이동 즉 오늘날의 슬라이드에 있습니다. 좋아,에 대한 질문 CS의 오늘의 삶의 교훈? 그 전원을 끄십시오. 전혀 없나요? 전혀 없나요? 나는 확인 많은 사람들이있어 이제 스냅 챗 또는 뭔가. 좋아, SQL 그래서, 구조적 쿼리 언어. 의이 포장 보자. 또한, 비록 우리는 긁는거야 이 표면 언어는, 우리는 당신에게 줄 것이다 언어의 충분한 PSET 7 형태 그래서 당신은 몇 가지를 해결 할 수있는 매우 일반적인 기능을 제공합니다. 그러나 부부가 실현할 우리가 당신을 필요로하지 않는 것, 하지만 그들은 될거야 중요한 최종 프로젝트를 올 확실히 실제 제작 올 실제 사용자와 웹 사이트 이 디자인 결정이다. 이 글은 그 밝혀 MySQL 데이터베이스, 당신 같은 선택의 움큼을 가지고 당신의 열에 대한 데이터 유형 다른 것들,하지만 당신은 또한이 소위 스토리지 선택 모든 데이터에 대한 엔진, 파일 시스템의 종류, 당신이 익숙하다면, 모든 데이터에 대한. 어떤 형식의 궁극적에 저장됩니다? 그리고 가장 일반적인 아마도왔다 의 MyISAM과 InnoDB의, 기술 용어 우리는 단지에 대한 관심 거라고 정도에 그 하나가 하나는 가지고 있지 않습니다 다음과 같은 기능입니다. 당신이 가지고 있다고 가정하자 작은 기숙사 냉장고. 그리고 그를 가정하여 이 냉장고를 공유 룸메이트, 말 우유를 정말 좋아한다. 그리고 이것은 사실, 방법입니다 이야기는 돌아 오는 길에 나에게 말을 들었다 하루에 나는 교육을받은 때 CS 161 운영 체계,라고하는 유사하게이 주제를 탐구한다. 그래서 당신이 냉장고를 가지고있다. 당신은 우유 나간다. 그리고 당신은 당신의 룸메이트, 집에 와서 여전히 클래스 또는 무엇이든에, 당신은 내가 갈거야 결정 나가서 우유를 얻을. 당신이 냉장고를 닫습니다 그래서, 유치장 기숙사는 거리를 가로 질러 이동 CVS 어디든지, 얻을에 라인에서 우유를 구입합니다. 한편, 룸메이트가 집에 도착 클래스에서, 기숙사 방에 들어간 또한 실현, 냉장고를 엽니 다 ooph, 우리는 우유 나간다. 그래서 그 또는 그녀가 종료 냉장고 후 발생 다른 CVS으로 이동하려면 이는 될 일이 한 블록 떨어진 다른 CVS에서 광장에서, 라인에 도착 우유를 거기까지. 물론 지금, 몇 분 나중에 모두 돌아, 모든 가능한 최악 결과가 발생했습니다. 당신은 모두 우유를 가지고있다. 그리고 당신은 정말하지 않습니다 우유 같은 많은 그. 그래서 그들 중 하나는 그냥 어떤 점에서 시어 것. 그래서 지금 당신은 과도한 양을 냉장고에 우유의 모든 이유 때문에? [들림] DAVID 마란 : 그래, 당신은하지 않았다 여하튼 서로 연통 것을 당신은 우유를 얻고 있었다. 가장 간단한에 따라서 인간 세계의 방법, 이 바보를 방지하는 방법 이러한 일어나는 시나리오 것을 하나만으로 끝낼. 를 텍스트, 그래 좋아. 하지만 어떻게 다른? 포스트 - 그것 노트. DAVID 마란 : 포스트잇. 통신 모든 형태의 그게 당신의 룸메이트를 알려줍니다 우유 냉장고에 가지 않는다. 난 내 자신에 재고 보충 갈거야. 그래서 당신은 어떻게 든 필요 이 자원을 고정합니다. 그래서 우리는이 항아리를 만들 수 있습니다 우리는 종류의 수 이야기를 망치 및 CS 스토리로 변신 이에 같은 단지 같은이 생각 어떤 값을 저장하는 변수. 그리고 지금, 우유의 값은, 제로 당신이 원하지 않는 룸메이트는 그 변수를 검사합니다 다음 의사에게 그 사람이나 그 자신을 그 변수의 상태에 기초 당신의 과정에 있다면 그 변수의 상태를 변경. SQL의 라인 그래서 하나가 우리 PSET 7 사양에 당신을 줄 여기 하나입니다. 그리고 우리는 거대한 지출하지 않습니다 시간의 양이 그것에 대해 얘기합니다. 당신이 시도하는 경우에 그러나, 밝혀 CS50 금융에 일부 주식을 구입 당신이 이미 가지고 당신의 일부 주 번호을 할 수 있도록 즉시 함께 가지. 당신은 할 수있게하려면 효율적으로, 높은 수준에서, 내가 원하는 경우, 모든 권리 확인 무료 더 많은 주식을 살, 페니 주식 우리 스펙에 대한 이야기​​, 나는 먼저 확인해 보는 게 좋습니다 몇 주 전이있다. 그리고 다섯의 가정합니다. 그리고 내가 원하는 가정 나는 궁극적으로, 10 이상을 구입 주식 15 주를 갖고 싶어. 그래서 두 가지 질문을해야합니다. 변수의 상태는 무엇입니까? 행의 상태는 무엇입니까? 나는 현재 얼마나 많은 주식을 가지고 있습니까? 그럼 당신은 가서 그것을 업데이트 할. 그래서 아날로그로의 당신이 행을 확인한다는 점에서 우유, 그리고 당신은 그것을 업데이트 할 10 개의 주식을 사고 싶은 경우 때문에, 당신은 변경하지 않으 10 행, 당신 5로 변경하려면 플러스 10 물론, 15. 코드 행은 보장 이 두 개념 아이디어 함께 또는 전혀 발생. 다른 사용자를 포함하여 아무도, 누가, 동일한 웹 사이트에 로그인 한 것 어떻게 든 중단 할 수 있습니다 행의 검사 및 행의 갱신, 선택하고 업데이트하면됩니다. 그리고 구문, 슈퍼 명확하지 않다 하지만이 한 줄은 오래가 있습니다 그 두 동작을 보장합니다 변수를 확인하거나 행을 확인 과 행이 원자 적으로 일어날 업데이트합니다. 아, 여기에 우리가 다시 간다. 내 휴대 전화에 문자 메시지. 그럼이를 만들어 보자 좀 더 구체적인. 당신이 아니라는 걸 가정 냉장고를 구현 당신은 구현하지 않을 PSET 7하지만 실제 은행, 또는 ATM, 자동 현금 기계, 이에 당신을 어떻게 든 권한을 부여 할 수 있도록하려면 사용자는 돈을 전송하려면 하나의 계정에서 다른. OK, 만요. 지금이 음소거하겠습니다, 감사합니다. 그래서 우리는 돈을 이동하려면 하나의 계좌 번호에서 다른 계정에 수, 특히 백​​달러. 그래서이 임의의 종류입니다 예를 들어, 이에 당신, ATM, 두 SQL을 실행 할 수 있습니다 쿼리는, 하나의 계정에서 빼기 다른 계정에 추가 할 수 있습니다. 하지만 이러한 것을 보장 할 두 줄이 발생하거나 전혀 모두. 당신은 뭔가를하지 않으 중단지고. 당신은 어떤 스마트 나쁜 사람이하지 않는 어떻게 든 미국의 은행에 서 앞에 두 개의 현금 인출기와 그를 어떻게 든 일종의를 입력 동시에, 명령 희망 대신 200 달러 공제 시도 백달러과 신용 만 가지고 $ 100. 즉, 당신은이 작업을하기 원하는 예상대로 정확하게 동작합니다. 그리고 당신이 할 방법 이 SQL의 데이터베이스입니다 당신은 무엇에 포장 트랜잭션이라고합니다. 말 그대로 SQL, 당신은 CS50의를 호출 할 수 있습니다 견적 맺다 시작과 쿼리 기능 거래. 그럼 당신은 어떤 수를 실행할 수 있습니다 다음 SQL 쿼리, 하지만 그들 중 누구도 수행하지 데이터베이스에 미치는 영향 당신은 쿼리 인용 맺다를 호출 할 때까지 다시 PHP를 사용하는 경우, 커밋. 그리고 이러한 방법으로, 당신은을 보장 할 수 당신이 경우에도 사용자가 1,000 모든 데이터베이스를 타격 동시에, SQL 이러한 것을 약속합니다 두 개의 쿼리가 될 것입니다 하나씩 권리를 구현했습니다. 그래서 당신은 초과와 끝까지하지 않습니다 우유 또는 잘못된 양, 궁극적으로, 돈. 그래서이 점을 명심, PSET 7 그다지 하지만 최종 프로젝트 실제로 있다면 주위에 데이터를 이동하려고 테이블의 맞은 편 인 귀하는 여기 있습니다. 그러나 어쩌면 간단하고 예제를 이해하는 것이 분명 여기 하나입니다. 그리고 사람에 대한 정보를 이메일로 전송 이 단지 다른 하루 그는 비슷한 온라인으로 뭔가를봤을 때. 내 지식, 핀 시스템 그래서 이 공격에 취약하지 않습니다. 그리고 난 아무 생각이 경우에도 사용 후드 아래에 SQL 데이터베이스. 그러나의를 위해 그것을 사용하자 토론을 위해. 다음은 화면의 그 하버드 사람들은 경향 에 로그인 할 때 볼 수 그들의 하버드 ID 번호와 핀. 그리고 핀 시스템이라고 가정 PHP와 MySQL과 연동 구현 베이스 코드는 누군가 쓴 수 년 전 같을 수 있습니다. 우선, 선언 변수라는 이름. 그리고 단지으로부터 얻을 POST의 전역. 그런 다음 다른 변수를 가져올 암호라고하며 동일한 작업을 수행. 그리고 바로 실행 여기이 긴 쿼리, 사용자 곳에서 선택 스타 사용자 이름은 이러 이러한 동일 과 암호는 이러 이러한 같다. 곱슬이납니다 중괄호 여기 사용했습니다 단지 PHP에 의미, 이동 앞서 및 대체 그 두 가지의 값 거기 변수. 그들은 꼭 필요한 것은,하지만 그들은 미묘한 구문 오류를 방지하는 경향이있다. 그래서이 완전히 보인다 첫눈에 수정합니다. 그리고 그것은이다. 당신은을 구현할 수 이러한 방식으로 핀 시스템. 그러나 슈퍼 있다고 가정 스마트 악성 학생 자신의 핀으로 입력이 있습니다. 그래서 총알을 제거했다 모의까지 여기 표지판, 나는 실제로 공개했습니다 그가 또는 그녀가 입력 될 수 있습니다. 그리고 그것은 조금 이상하다. 그러나 잠재적으로 당신을 밖으로 점프 사용자의 입력에 대한 걱정, 당신은 아무 생각이없는 경우에도 어떤 SQL 주입 공격을 의미한다. 왜 이런 일이 조금 비린내가 보는가? 그게 뭐야? [들림] DAVID 마란은 : 또는이다 조금 의심. 사실, 즉 SQL로부터의 키워드입니다. 그래서 좋은 징조하지 않습니다. 거기에 있다는 사실 이러한 모든 작은 따옴표 저기 사실, 가장 쉬운 방법 중 하나 일부 데이터베이스를 중단하는 방법 오라일리 같은 이름을 입력하는 것입니다 즉, 아포스트로피가 인간이 쓴 사람 경우 때문에 무대 뒤에서 코드 고려하지 않는이 사용자의 단일 따옴표 수 있습니다 입력, 그 또는 그녀는 사용하고 자신의 코드에서 따옴표, 나쁜 일이 발생할 수 있습니다. 사실, 더 심한 경우,이를 고려한다. 이것은 다시 코드 였다면 그 하버드 년에서 사람 전 핀 쓴 시스템, 무엇을 느끼지 약은 대체 얻을 사용자 이름과 암호를 사용자가 입력하는 경우에 다시 자신의 이름으로 skroob 다음, 하나, 둘, 셋, 넷, 다섯, 하나의 등호 맺다 견적 견적 하나를 인용. 어떤 키를 느끼지 여기에 사용자가하지 않은 것입니다 시작 암호 또는 견적과의 핀. 그리고 그들은 그것을 종료하지 않은 견적 때문에 그 또는 그녀 가정되면 프로그래머는, 예리하지 않았다 그들은 사람들을해야 할 것 자신의 코드에서 따옴표. 그래서 여기에 코드입니다. 그리고 대체 그 지금 일어날 수 이것입니다. 그리고 밑줄이 한 일 사용자는에 입력하고있다. 그래서 전, 후. 그리고 지금 약간 걱정 무엇을 알 이 SQL 코드의 오른쪽 절반에 대한? 그것은 일반적으로 인정 하듯이, 좀 더 복잡 쿼리보다 우리는 보았다. 그러나 이것은 아마도 수 없습니다 당신이 있다면 좋은 일이 될 선택입니다 선택 스타, 말 사용자의 테이블에서 모든 여기서 사용자 이름은 skroob 같고 패스워드가 동일 하나, 둘, 셋, 넷, 5 하나는 하나 같습니다. 논리적 의미는 무엇입니까 아마도 마지막 절? 그냥 항상 사실입니다. 그리고 우리는 종류의 추측 때문에 또는 시행 착오를 알아 그 프로그래머 사람 쓴이 코드는하지 않았다 사람이나 나쁜 사람을 예상 뿐만 아니라 작은 따옴표를 입력, 우리는 문법적으로 수 SQL 쿼리를 완료 무의미​​한 뭔가 하지만 뭔가 그 문법적으로 잘못된 것입니다 즉, 항상 true로 평가한다. 그래서 코드에 응답하는 데 사용되는 경우 질문 참 또는 거짓한다 이 사용자는 통과하도록 허용 대답은 항상 분명히 것입니다 이 항상 가고 있기 때문에 사실합니다 데이터베이스에서 무언가를 선택합니다 물론 하나는 항상 하나에 해당하기 때문이다. 그래서 해결책은 무엇입니까? 잘 PSET 7에서, 우리는 실제로 모두 함께이 문제를 방지. 우리는 당신에게 쿼리 기능을 제공하고, 우리 물음표를 사용하는 것이 좋습니다 자리로, 유사 의 printf의 % s의 정신, 하지만 물음표에 대한 주요 무엇 실제로 통해 읽으면 여기에 functions.php 여기서 우리 쿼리 기능은 구현 그 물음표는 이스케이프, 이에 잠재적으로 위험한 아무것도 작은 따옴표가 켜져처럼 이스케이프 된 따옴표로. 그래서 이것은 무엇이다 정말 경우 발생 CS50의 쿼리 기능 또는 숫자를 사용 타사 무료 라이브러리의 동일한 작업을 수행. 이 경우에는 문제가되지 않습니다, 녹색, 사용자는 따옴표에 입력 한 경우 쿼리 때문에 우리가 쓴 기능입니다 전에 백 슬래시를 추가하는 것 이러한 위험한 인용. 그래서이에, 아니다 사실은, 합법적 될 것. 이 찾고 미친를 입력 같다 물론,하지 않을, 암호 skroob의 실제 암호이어야합니다. 그래서 CS50의 테이크 아웃은 하나입니다 절대적으로 항상 뭔가를 사용 CS50의 쿼리 기능 등 또는 기본 라이브러리, 이는 PDO 호출 할 수 발생합니다. 그러나 결코, 결코, 이 같은 코드를 결코하지 않을 탈출 또는 스크러빙없이 그들이 당신의 입력은 말한다. 그리고 당신은 몇 가지 점에서 아마 이 같은 일부 웹 사이트를 통해 제공됩니다. 사실, 케이스 보인다 지역의 공항과 호텔에서 같은 그들은 무료 Wi-Fi 인터넷을 어디 당신이 로그인해야 액세스, 이 웹 사이트는 항상 끔찍하게 구현했습니다. 그리고 가정 운동에서 재미의 종류, 하지 악의적 인 목적 이상 도로에 재미 운동, 바로 입력하는 것입니다 아포스트로피, 작은 따옴표, 일부 웹 사이트의 형태로 무슨 일이 일어 나는지 참조하십시오. 그리고 서버가 충돌하거나 제공하는 경우 당신이 오류 메시지가 어떤 종류의, 아주 잘 저것을 할 수있다 사람이 예상되지 않았습니다. 그리고 당신은 적절한 경고한다 당국과는 더 이상 진행되지 않습니다. 그래서 지금 너희들이 희망해야 여기에 좀 더 괴짜 유머를 이해합니다. [웃음] DAVID 마란 : 당신은 당신이 괴짜 거 알아. 다음 몇 가지를 들어 년, 당신은 기억할 것 누가 작은 바비 테이블 것은 여기에이 만화 때문이다. 그래서 같이 명심 우리 컨텍스트 스위치 마지막으로 한 번 자바 스크립트 오늘. 우리는 상대적으로 조금 보냈어요 PHP의 구문에 대한 시간 실제로 왜냐하면 C. 슈퍼 유사 그리고 충분히 능숙, 자바 스크립트도 C의 구문에 매우 유사하다 우리는에 볼 수 있습니다뿐만 아니라, 잠시 우리가 겠지만 특히 이번 주를 참조하십시오. 이 언어로 수행 할 수있는, 하지만, 더욱 강력 특히 API를. 하지만 먼저 둘러보기. 그래서 하나는, 자바 스크립트, 거기에 좋은에는 주요 기능하지 않습니다. PHP와 같이, 당신은 코드를 작성할 수 있습니다. 조건은 다음과 같이. 그리고 부울 식을 수도 이 같은 또는 같이. 스위치가 존재하고 같을 수 있습니다. 네 루프는 다음과 같다. 루프는 다음과 같이한다. 수행 그런데 같이. 그리고 배열처럼 이, PHP와 매우 유사합니다. 그러나, 자바 스크립트 당신의 그 통지 달러하지 변수를 선언 하지 않는 데이터 유형을 문자 그대로 서명 그 전에 변수 VAR을 말하면서. 너무 느슨하게 입력 된 한다는 점에서 유형이 있습니다, 하지만 당신은 명시 적으로 선언하지 않습니다. 그리고 문자열에 대한 예, 보일 수 있습니다 이 같은 문자열 이 경우의 호출된다. 그리고 객체입니다. 그리고 이러한 우리는 오래 전에 자세한 내용을 볼 수 있습니다. 그리고 목적은 아마도 중 하나입니다 가장 일반적으로 데이터 구조를 본 자바 스크립트에 기반을 둔 프로그램은 수 있기 때문에 당신은 임의 연결합니다 키 값 쌍 단지 PHP의 연관 배열 같은 그냥 자신의 해시 테이블과 같은 우리가 구현 또는 시도 다시 몇 주. 그래서 실제로 보자 무엇 우리는 자바 스크립트로 할 수 있습니다. 특히, 여긴 기능의 세탁 목록 브라우저는 것을 가지고 우리는 자바 스크립트 후크 할 수 있도록 다음과 같은 방법으로 홈페이지. 자바 스크립트는 종종로서 사용 클라이언트 측 스크립트 언어. 이 컴파일 아니에요. 너무 해석됩니다. 하지만 PHP는 달리, 어느 실행 된 서버, 웹 서버에서, 또는 깊은 내부 클라이언트, 자바 스크립트 그것이 다르다 일반적으로 브라우저에서 실행됩니다. 그래서 자바 스크립트 코드는 쓰기 시작 PSET 8, 최종 프로젝트, 또는 현실 세계에서 일반적으로 것입니다 절대적으로, 서버에 저장 될 점 HTML 또는 도트 자바 스크립트 파일에 대한 JS. 그러나 브라우저는 것입니다 그 자바 스크립트 다운로드 크롬의 자신의 인스턴스에 대한 코드, IE 나 파이어 폭스, 또는 무엇이든 또는. 그리고 코드는 실제로 얻을 것입니다 자신의 브라우저 내에서 실행. 그냥이 더 리얼하게하기 위해, 의 구체적인 형태에서 볼 수 있습니다. 우리는이 코드가 무엇을하는지 아무 생각이 정말 읽는 것없이. 그러나 나 Facebook.com에 가자 로그인하지 않고. 내가 요소를 검사하고 이동하려면 가자, 의 말을하자, 네트워크 및 페이지를 다시로드. 그리고 우리는 알아요 ...거야 나를 다시로드를 이동하자 페이지 새에 대한 모든 요청을 얻을 수 있습니다. 그리고 첫 번째 내가 볼 파일은 CSS, CSS입니다. 여기에 처음이다 자바 스크립트 파일, 나는이 어떤이가 무슨 생각,하지만 여기에 자바 스크립트 코드의 일부입니다 그 페이스 북을 구동한다. 심지어 정말 아니다 확대하려면 공개. 아직 그냥 무의미합니다. 하지만 당신은 거기에, 심지어 그 아래 볼 수 있습니다 이 자바 스크립트 파일의 더. 아차. 즉 핑. 의 조금 아래로 가자 또한, 더, 더. 하나가있다. 하나가있다. 하나가있다. 그래서 심지어 페이스 북 불구하고, 뒤에 장면은, PHP의 일부 기록 페이스 북의 자신의 버전 그, 자바 스크립트의 거대한 양의가있다. 사실, 임의 당신은 페이스 북에서 할 채팅, 인라인 타임 라인 업데이트 중 즉, 실시간으로 그 모두 일어날 자바 스크립트에 의해 구동된다. 그래? 청중 : 나는 확실하지 않다 이 무비의 경우, 하지만 페이스 북이 개발 한 생각 자신의 내부 코드 언어? DAVID 마란 : 그들은 않았다. 나는의 분산을 말할 그래서 그건 PHP는 그들이 실제로 힙합이라고 이러한에 추가 된 기능 때 마크는 처음으로, 페이스 북을 구현 그것은 PHP에서 작성되었습니다. 그리고 그런 종류의 남아있다 전단 언어의 종류 그들은 많은 것을 사용하는 것이 그들의 코딩하지만의 의 언어되지 않았습니다 수십억 특히 확장 사람들의. 그래서 그들은 자신을 추가 한 무대 뒤에서 개선. 그리고 그들은 어떤 번호를 사용 다른 언어 다양한 정보에 대한 인프라. 그래서 그래, 그것의 분산이다 우리는 지금 PHP로 알고. 그럼 살펴 보자 몇가지 예를 들어 의 우리는 여기에 자바 스크립트를 사용할 수있는 방법. 오늘날의 소스 코드에서, 우리가 가지고 파일의 무리, 그 중 첫 번째, 의는 DOM 제로라고 할 수 있습니다. 다음과 같이 그래서 DOM 제로 보인다. 날이 디렉토리로 가자 및 domzero.html을 열어, 의 상단은 문서 유형이 선언은, 여기서 말하는 것은 HTML 5 온다. 그리고 지금 여기에 HTML 태그입니다. 여기에 헤드 태그입니다. 그리고 오늘의 새로운 기능입니다. 이제 우리는 스크립트 태그가 페이지의 헤드의 안쪽. 그리고 이것은 분명히하지 아주 작은,하지만 예고 내가 정의한 것을 스크립트, 자바 스크립트. 그리고 옆으로,이 이후로 일반적인 오해이다, 자바 스크립트는 절대적으로 무관 자바 언어와는 여러분 중 일부는 수도 그 APCS에 배웠습니다. 그것은 마케팅의 더 있었다 무엇보다 일이, 전 자바 년의 coattails를 타고. 하지만 자바 스크립트, 아무 상관 없습니다 자바, 단지 유사하고, 귀찮게, 혼동의 이름. 그래서 여기에 당신이 함수를 선언하는 방법입니다 자바 스크립트로, 말 그대로 기능을 말한다, 다음 함수의 이름, 그런 다음,이 걸릴 수 있습니다 인수, PHP 단지를 좋아한다. 자바 스크립트, 가장 중 하나 밝혀 존재 성가신 기능 경고입니다. 이 작은 창입니다 팝업 및 경고합니다 정보의 일부 조각. 그것은 일반적으로 눈살을 찌푸리게합니다. 그러나 우리는 그것을로 사용합니다 우리의 여기에 첫 번째 연습. 자바 스크립트의 몇 가지 기능을 알 수 있습니다. 작은 따옴표와 큰 따옴표 실제로 더 이상 중요하지 않습니다. 작은 따옴표를 두 번 따옴표는 상호 교환 할 수있다, C에있는 반면에, 당신은 사용해야합니다 문자열을 큰 따옴표, 당신은 한 두 가지가 문자 시세입니다. 자바 스크립트 세계에서, 많은 사람들이, 대부분의 사람들 문자열 주위에 따옴표를 사용 그냥 문체 일이 있기 때문이다. 그러나 더하기 연산자는, 여기에 무슨 이는 우리가 전에 보지? 청중 : 연결. DAVID 마란 : 연결. 그래서 C는 심지어이 없습니다. PHP는 도트 연산자를 가지고, 이는이 작업을 수행합니다. 자바 스크립트는 더하기 연산자를 가지고, 이는 혼동 단지 자바 같다. 이제 무슨 일이야? 그래서 여기 어디에 기본이다 그 사진의 이해 우리는 몇 가지를 던져 일 전 플레이에 온다. 우리는 간단한을했을 때 기억 버전의 HTML page-- 그냥 안녕하세요 말했다. 그리고 우리는 나무를 그렸습니다 오른쪽에있는 사각형 및 라인의 무리가 있었다 가족 나무처럼 연결. 그래서 소위 DOM이다 또는 문서 객체 모델. 그리고 그것은 당신이 액세스 할 수있는 것으로 나타났다 구문과 그 나무에 사각형 다음과 같은. 당신은 말 그대로 인 문서를 말한다 자바 스크립트의 특별한 전역 변수 기능을 가지고 프로그램 사용자가 액세스 할 수있는 그와 연관된 구조체와 유사하지만, 단순히 도트하고 함수의 이름을 말 ID에 의해 요소를 얻을. 나는 취득하는 요소이다 분명히 맺다 이름을 인용. 그리고 나는 그것의 가치를 얻을 싶어요. 이제 우리는 앞서 자신의 있어요. 난 확실하지 않다 무엇 모든이에 관한 것입니다. HTML에하자 빨리 감기에 슈퍼 간단한 페이지. 내가 정의한 공지 사항 여기에 아래로 형성한다. 나는 그것을 고유를 준주의 사항 우리가 사용하지 않는 한 비록 ID, 이 속성 전에. 하지만이 HTML에 존재합니다. 당신은 유일하게 어떤 덩어리를 식별 할 수 있습니다 이 같은 식별자와 HTML의. 공지 사항 지금 이런것은 HTML 밝혀 세탁물 목록 당 지원 조금 전에, 전체 이벤트 핸들러의 무리. 그리고이 이벤트 핸들러 제출에 말했다. 이러한 사용자에 제출 형태는 다음 코드를 호출합니다. 그리고 그 코드는거야 호출 또는 실행되는 정확히이, 그리스어 함수는 반환 거짓 하였다. 다른 모든해야 꽤 익숙. 여기에 유형이 텍스트의 입력이며, ID는,이 경우, 이름 될 것이다. 우리는 실제 이름 속성이 없습니다 이 외엔 및 제출 버튼을 클릭합니다. 그래서 결과 페이지는 다음과 같습니다. 그리고 결과 동작, 이처럼 보이는 볼 수 있습니다. 페이지 그것은 로컬 호스트 안녕하세요, 말한다 미적 거의 데이비드, 사용자를 맞이하는 방법. 그러나 실제로 무슨 일이야? 음,이 무엇인지 고려한다. 이것은 텍스트 필드이다. 그리고에 따라 여기에 HTML, 나는 그것을 준 고유 식별자 라고 인용 맺다 이름. 한편, 나는 때 말한 사용자는이 양식을 제출 입력 누르거나 클릭하여 제출 버튼, 인사라는 함수를 호출 다음 False를 반환. 의 역방향 사람들을 생각해 보자. 내가 제출을 클릭하면 공지 사항 이 페이지의 URL이 변경되지 않습니다. 브라우저의 아이콘 회전 시작되지 않았습니다. 난 아무데도 가지 않았다, 그것은이다 말 그대로 내가 False를 반환 말했다 때문이다. 거짓 회로 단락 또는 정지를 돌려줍니다 폼의 기본 동작. 다음 우리를 둔다는 점과 그래서 이 마지막 질문. 문안은 무엇입니까? 글쎄, 분명히 인사 라는 함수를 호출 경고는 하나의 통과 롱 인수 함께 연결하는 결과 문자열의 무리, 쉼표 공간 안녕하세요, 다음이 반환 뭐든간에. 그래서 문서 글로벌 같다 그 나무의 루트에 변수, 특별한 함수를 호출, 그렇지 않으면 지금하는 방법으로 알려져 있습니다. 의 기능 변수는 내부 방법 대신 함수를 호출. 그래서 ID로 요소를 얻을. 어떤 요소 당신을 ID로 싶어? 인용을 끝내 이름을 견적과 다음 특별히 값입니다. 따라서 환언하면, 그 코드 단순히 ID가 이름 텍스트 필드를 찾습니다 다음의 값을 가져옵니다. 그래서 만약 내가이 위치를 변경했다 그리고, 다빈 대신 데이비드 말 우리는 지금, 제출을 클릭합니다 다빈에 대한 인사말이있다. 그래서 잘 할 좋아. 그러나 우리가 할 수 있는지 보자 다만 이후 청소기이 조금 이처럼 코드를 작성 일반적으로 눈살을 찌푸리게 될 것. 이 무서운 보일 것입니다. 하지만 첫 번째 무엇 여기서주의 차이 게다가이 버전의 DOM의 하나에 변경 이름은? 어떤 구조적으로 다른 보인다 다른 대에 대해? 그래? 관객 : 양식에가 이제 스크립트의 상단? DAVID 마란 : 네, 양식 상단에 일부 호기심 이유로 스크립트. 그래서 우선이다 그 역시 나를 밖으로 이동합니다. 그리고 다행히 적어도, 이 부분은 동일합니다. 그래서 보인다 유일한 다르게하는 것은 이것이다. 그래서 여기에 깔끔한 무엇 자바 스크립트 2에 대한. 그리고 그것은에 열심히하게 언뜻 이해, 특히 최종 프로젝트의 경우에 당신은, 온라인 샘플 코드를 찾고 하지만 몇 가지 문제로 귀결 기본 문법 기능. 여기에 다시 것입니다 글로벌 변수 문서. 여기서 다시 그 방법 또는 기능입니다 그 ID로 요소를 얻을 말한다. 내가 원하는이 시간 데모라는 ID를 얻을. 그 어디있어? 그건 분명히 맞아 여기에, 양식 자체. 그리고 지금 알이 분명히있는 경우 I 트리에서 노드를 돌아가는 건 형태를 나타냅니다 그 자체가 아니라 텍스트 필드, 는 것을, 그 형태를 밝혀 트리에서 노드 또는 사각형, 우리는 속성을 호출합니다 것을 가지고 매우, 매우, 매우 유사 C의 구조체에 정신이 단지 이 사각형의 내부 데이터 멤버. 그래서 양식을 가지고 여기에, 나는 부착하고있어, 의에 제출에 아니면, 할당 해요 핸들러 또는 오히려에 속성을 제출 다음과 같은 기능. 그리고 이것은 지금까지, 미친,이다 것은 지금까지 구문. 그것은 자바 스크립트와에서 밝혀 PHP, 솔직히 C에서 그 문제에 대한, 우리가 그것을하지 않더라도, 당신은 할 수 무명, 익명, 또는 AKA (λ)를 추가 이름이없는 기능 하지만 그럼에도 불구하고 호출 할 수 있습니다. 그래서 내가 여기하고있어 내가 할당되어있어 이에, 속성을 제출하는 내 DOM 트리의이 노드의 내부 함수, 함수 포인터를 사용하면됩니다. 즉, 함수는이 없습니다 이름,하지만하지 않습니다 우리가 볼 수 있기 때문에 중요 순간에서 호출하는 방법에 대해 설명합니다. 이 함수가 호출 될 때, 이 코드는 실행됩니다 거짓은 바로 전에 같이 반환됩니다. 하지만 무슨 짓을했는지 알 수 있습니다. 이 시점에서 이야기, 나는 양식을 가지고있다. 이 데모라는 고유 ID를 가지고있다. 여기선 내가 스크립트 태그가 즉, 다음의 코드를 실행합니다. 그것은 해당 노드에 부착 그것에 나무에 제출의 재산 여기에이 기능을 사용하지 않음. 단지 브라우저가 작동하는 방식의 특성상, 지금 제출 또는 Enter 키를 누르 클릭하면, 이 함수는 호출되는 것입니다. 이 때문에 이름을 필요로하지 않는다 도대체이 호출 무슨 상관입니까. 이제까지 얻을 것 만 시간 나는이 양식을 제출 때 호출이다. 나에게 아무 필요도 없다, 인간의 개발자, 실제로 다른 곳을 호출합니다. 지금은 그냥 맛보기로, 그 것처럼 충분한 굽힘 상관하지 않았다, 우리는 심지어이 만들 수 있습니다 따라 암호화 사용을 보면 슈퍼 인기있는 라이브러리는 jQuery를 불렀다. 사실 jQuery를 자바 스크립트에서 종종으로 융합되어있다. 그리고 우리가 수요일에 할 것이다 것은 시작이다 이 언어 이들 라이브러리를 사용하여 점점 비동기 구축 동적 응용 프로그램 지도처럼 점점 응용 프로그램, 응용 프로그램 즉 실제의 웹 페이지를 업데이트 시간, 많은 페이스 북이나 Gchat 같은 할, 더 이상 자신을 한정하지 GET하거나 우편으로 제출 타격 혼자. 그래서 나는 수요일에 표시됩니다. [음악 연주]