[Powered by Google Translate] [주 7, 계속] [데이비드 J. Malan, 하버드 대학교] [이 CS50 수 있습니다.] [CS50.TV] 괜찮아요. 돌아 오신 것을 환영합니다. 이것은 CS50입니다 그리고이 주 7의 끝입니다. 그래서 인터넷에 간다이 멍청한 것들 중 하나 우리가 slurped, 그리고 지금 당신에게 엽기 감각을 좀해야합니다. 글쎄, 당신 친구들보다이 남자에게 더 웃기는했습니다. , 얘들 아, 음, 말하기 오늘 네이트의 생일입니다. 당신에게 얼마나 좋은 불량의 느낌을주고 나는 겁니까 웹 개발에 월요일의 클래스에 따라 지금이 기반으로 당신이 아직 보지 못했다면, 네이트의 홈 페이지를 당겨 줄 알았는데. 이 여기 IA 네이트의 H​​TML. 그러니까, 당신이 작업을 수행하는 방법에 표시하려는 경우 자신의 소스 코드를보고, 네이트 우리가 간단히를 em​​barass 수 있다면, 직원은 당신에게 뭔가를 조금 가지고 여기 클래스의 아이들의 일부와 함께 디저트를 공유하려는 경우. 당신이 내려오고 싶은 경우. 당신은 박수를 아주 좋은 있지만, 아무도, 네이트 근처에 앉아되지 않습니다 어떤 이유로, 그 뒤로 지역 인치 그래서 아마도 일부 사람들이와 함께이를 즐길 수 찾을 수 있습니다. 생일 축하한다, 네이트. 추가 한가 : 우리는 우리의 CS50x 학생에서 몇 클립을 보여 주었다. 당신은 누구에게보고하고 싶은 경우는 세계에 함께하는 거지, 당신은이 URL로 향 요셉, 우리의 TFS 중 하나 인 종류의 몽타주를 만들었습니다 곳 그 중에서도, 릭 Astley을 이러한 동영상을 제출 한 모든 사람들의. 여러분이 스크롤한다면, 정말 아주 멋져 사람들이 환영하는에서 국가와 도시의 다양성을 볼 수 있습니다. 당신이 살펴하고자한다면, 그 학기의 끝을 통해 수까지입니다. 오늘 우리는 웹 페이지의 모양을 계속, 웹 프로그래밍, HTML과 같은 우리는 또한이 금요일오고 점심을 당신은 원하는, 특히, 전에하지 않은 경우. 이번 주 금요일의 테마는, 네이트의 생일입니다 당신은 네이트 생일 점심 식사를하고 싶은 있으므로 경우 및 기타 산업에서 우리 친구들, 거기에 URL로 머리를하시기 바랍니다. 공간, 언제나 제한된 수 있습니다. 또한 잊어 버린 경우 그 다음 주 4의 스 캐빈 저 사냥을 설정 문제에 대한 마감일은 알지만, 상기 card.raw에서 이러한 JPEG 파일을 모두 복구 후, 여러분과 여러분의 섹션 친구는 당신이 원한다면, 촬영 시도 할 수 있습니다 가능한 한 그 메모리 카드에서 컴퓨터 과학자의 많은 등, 귀하와 귀하의 섹션은 다음 멋진 상을 받게됩니다. 무엇 제출과 언제까지 같이 pset 4의 사양으로 돌아 참조하십시오. 당신이 가진하고자하는 경우 또한, 그린은 불후의 코스의 웹 사이트 및 의류의 역사에, 당신이 디자인을 제출 시작하는 지금 환영 알고 올해의 T-셔츠와 스웨터와 같은하십시오. 우리는 우리가 할 수있는만큼 많이 포함하기 위해 최선을 다하겠습니다 하지만 우리는 디자인의 모든 직원 평가의 일부 구성원이됩니다 사람들이 사양과 일치하고 있는지 확인하면, 그리고 우리는 그들 중 소수가 전시 할 수 일반적으로 선택합니다. 당신이 디자인 종류다면, 그냥 알고 그 요구 사항 그래픽 PNG, 최소한 200 DPI입니다에 그들은 이상 4,000 X 4,000 픽셀이 아니어야합니다 그리고 10 개 이상 메가바이트,하지만 같은 물건을 사용하는 환영 포토샵이나 김프 또는 다양한 그래픽의 프로그램, 귀하의 처분에 있습니다 뭐든간에. 또한 수평선에서 최종 프로젝트입니다. 최종 프로젝트는 정말 (50)의 절정입니다 상기 과정에있는 모든 과제, 그 자신의 일을 정말 기회입니다. 그래서, 재미를 위해 뭔가를하고 간단하게 할 수 있습니다 그것은 학생 그룹이 몇 가지 중요한 문제를 해결하기 위해 할 수 새로운 웹 사이트에 대한 데이터를위한 새로운 수집 메커니즘. 이 iOS 용, 안드로이드 용 모바일 응용 프로그램이 될 수 있습니다. 정말, 하늘이 한계이고, 앞으로 몇 주 동안, C에서 PHP와 자바 스크립트와 같은 이러한 높은 수준의 언어로 우리가 전환으로, 당신은 자신이 점점 진짜 세계 기술을 친숙 찾을 수 있습니다 일부 실제 도구 및 보완하는 즉, 코스 세미나의 역사를 가지고 알고, 상기 앞으로 몇 주 동안, 교원의 일부 와 캠퍼스에서 우리의 친구는 선택 세미나를 제공합니다 위의 일반적으로 섹션에서 한 일을 넘어 한 안드로이드 프로그래밍 등을 소개하면, iOS를 프로그래밍 등을 소개 또는 고급 웹 개발 기술. 이 이미 온라인의 전체 역사는있다. 당신이 cs50.net/seminars에 가면, 우리는 꽤 몇 년 동안이 일을 해왔 당신은 PDF 파일과 동영상을 함께 보관하고 같은 것을 볼 수 있습니다 세미나 수십 동영상입니다. 작년에, 예를 들어, 우리는 당신의 기술 면접을 acing에 세미나를했습니다 당신은 실제로 오프 가서 인턴이나 풀 타임 공연을 할 찾고 있다면. 윈도우 모바일 개발, 안드로이드 개발, 구글지도, API, CSS는, 블랙 베리, 이맥스에 대한 개발. 정말, 당신은 귀하의 편의에서 이러한 세미나의를 살펴을 환영합니다. 그리고 우리는뿐만 아니라 몇 가지 새로운에게이 학기를 개최됩니다. 따라서 최종 프로젝트 진행 무엇입니까? 글쎄, 처음,이 날짜가 다소 임박한하더라도하면, 이 정말로 현실적으로 최종 프로젝트에 대한 생각을 시작하는 단지 기회가 될 것입니다. 우리는 우리가 아직 과정에서 커버 할 일의 일부는 시작을 알고 HTML, PHP와 같은, 당신은 웹을 모두 잘 알고 웹을 향해 나는 편견이 대화를 단 한 대부분의 사람들은 웹 기반 최종 프로젝트를하고 결국 하지만 그게 더 필요한 수단입니다. C를 사용하여 목표 C, 자바, 괜찮 당신이 알고 있는지, 할 수있는 다른 언어는 매우 유효합니다. 그러나 처음에 흐르는 주스를 얻을, 우리는 preproposal의 제출을​​ 기대합니다 하는 cs50.net에 지금 웹 사이트에 PDF 당 그리고 왼쪽 상단에서 최종 프로젝트를 볼 수 있습니다 , 최종 프로젝트에 대한 사양입니다 과에 preproposal에 대한 자세한 내용과 같은이 있습니다. 당신의 교육 동료에 대한 이메일은 거의 때문인 당신이 무슨 생각을하는지에 대해 그 사람과 대화를 공격합니다. projects.cs50.net에 캠퍼스에서 사람들의 아이디어의 저장소입니다 당신은 몇 가지 아이디어를 마련하는데 어려움을 겪고있는 경우 그리고 manual.cs50.net/APIs는 API에 링크 저장소입니다. 뭐,하지만 API입니까? API는 무엇입니까? 나는 적어도 두 번 말을 한 지난 몇 주간의 성적표에 따라. 그게 뭐야? [학생, 이해할 수없는] >> 그래, 좋아. 그럼 뭔가 프로그래밍 인터페이스를 제공합니다. 응용 프로그램 프로그래밍 인터페이스,이 몇 가지 형태를 취할 수, 하지만이 정말 종기가 다운하는 것은 코드입니다 그 HS 쓴 다른 사람이나 다른 사람이 수집 한 데이터를 그 어떤 프로그래밍 방법으로 이용할 수 있습니다. 당신은 C, PHP, 파이썬, 루비에서 코드를 작성할 수 있습니다 선택의 언어는 일반적으로간에, 당신은 어떻게 든 다른 사람의 기능에 구축 할 수 있습니다 또는 다른 사람이 데이터 세트입니다. 예를 들어, 여기이 링크로 이동하면, 그리고 당신은 이후 페이지에 링크 한 쌍의를 볼 수 있습니다 상기 우리는 CS50 자신의 매우 하버드 중심의 아르 API를, 그리고 써드 파티 API를 갖추고 있습니다. 타사 API를 사이에 정말 유용한 사항은 다음과 같습니다 SMS의 집에 사람들을 보낼 수있는 것 같아, 사람들 SMS 문자 메시지를 수신 할 수있는. 그리고 당신이 얼마나 자신을 구현하는 방법 모를 수 있습니다 그런 식으로, 하지만 서비스 덕분에, 일부 무료 및 일부 상업, 당신이 저 위에 구축하고 당신에게 관심 뭔가를 할 수 있습니다. CS50의 API 중 다음과 캠퍼스 중심 일들이 같다 하버드 과정, 에너지, 이벤트, 음식,지도, 뉴스, 트위터와 Shuttleboy 자체, 이러한이 같은 뭔가를 조금 찾아 API를합니다. 제가 HarvardFood의 API를 당겨 보자. 아빠는 항상 HUD의 웹 사이트에 가본 적이 있다면, 당신은 아마 거기가 봤어요 단지 저녁 식사 보거나 시간이 몇 D-홀을 무엇인지 볼 수 있습니다. 음, 탐색 특히 쉬운 일이 아니지 그래서 우리는 시간이 좀 전에 우리는 소프트웨어를 만든 한 건 실제로 화면 HUD의 웹 사이트 전체를 scrapes PHP,에 있어야 발생합니다. 흠집 뭔가를 차단하려면 PHP 같은 언어로 프로그램을 작성하는 것을 의미 즉, 당신은 명령 프롬프트에서 실행 수는 없었지만, 브라우저가 될 것처럼 브라우저가 될 것처럼 그, 웹 사이트에 연결 는 HTML, 그것이 서면하는 언어를 다운로드 다음을 읽고, 또는 즉, 구문을 분석 위에서 아래로, 왼쪽에서 오른쪽으로. 그리고 우리가 한 행동은 우리가 그 같은 방식으로 코드를 작성 우리가 메뉴에 뭔가 닮은 HTML에서 뭔가를 봤 더군요 언제든지 햄버거처럼, 우리는 우리의 자신의 데이터베이스로 가져올 것입니다. 그리고 우리가 영양 내용을 본 언제든지, 우리는 우리 자신의 데이터베이스에 그를 가져올 것입니다. 그리고 우리가 한 것은 사실 활용 한 것 HUD의 웹 사이트, 그것은 우리 인간이 탐색 할 수있는 도전이 좀 될 수 있어도 후드 아래, HTML 모두 자신의 컴퓨터 프로그램에 의해 생성됩니다. 그래서이 혼란스러워 보일 수 있더라도 자신의 HTML의 모든, 후드 아래에 대부분의 웹 사이트처럼 하나의 패턴을 따른다. 그래서 우리는 그 패턴을 알아내는 몇 시간을 보냈다 그래야 결국, 우리는 지저분한 HTML을 모두 던져 굵은 향하고의 미학 및 기울임 꼴과 같은 모든 그리고 우리가 다음 할 수는 같은 데이터를 노출합니다. 예를 들어,이 방법은 아니에요. 그래서 우리는 여기 문서에 의하면, 당신은 URL을 요청하면 세계 그 대한​​ 정보를 과 같은 즉, food.cs50.net / 일, 그리고 우리가 오늘에 대해 이야기를 해보 특정 매개 변수를 제공 등등 최종 날짜 시간, 시작 날짜 시간, 식사와 같은 어떤 서버는 예를 들어, 돌아갑니다 CSV 파일 쉼표, Excel 파일과 같은 값을 separted입니다 작년 3 월에이 특정 날짜에 아침 식사가 포함 된 모든 나는이 문서를 작성하는 일이 생겼을 때. 익숙한 분들을 위해, CSV는 전용 파일 형식이 아닙니다. 모든 더 다양한입니다 다른 형식이 JSON 자바 스크립트 객체 표기법했다. 데이터는 해당 형식으로 다시 할 수 있습니다. 자, 이제 테이크 아웃입니다 해당이 API에 관계없이 당신은 다이빙 또는 CS50의이나 뭐 거기서 인터넷에서의 다른, 또는 아닙니다, 세계가 점점 더 표준화하기 시작하고 있다는 것을 깨닫게 기계는 어떻게 서로 왕래하다. 우리는 CSV 또는 JSON과 같은 표준 데이터 형식을 사용합니다. 그리고이 일이 당신을 위해 의미하면 프로그램의 흥미로운 부분을 쓸 수있다 그 사용자가 식사 홀 메뉴를 검색 할 수 있습니다 그 사람들이 그들에게 문자 알림을받을 수 있습니다 즐겨 찾기 목록을 만들 수 있습니다 자신이 좋아하는 식사는 몇 D-홀에서 제공하려고 할 때 자신의 API를 상단에 다른 사람의 데이터 세트와 건물을 사용하여. 세미나와 여기에 온라인 가지고있는 문서의 형태로 그에 따라서 더. 그 그럼, API는 있습니다. 그래서 HTML 우리를 다시 제공합니다. 빠른 뉴스 레터를 살펴보세요. HTML은 무엇입니까? [학생, 이해할 수없는] >> 좋아. 하이퍼 텍스트 마크 업 언어. 다른 사람, 하이퍼 텍스트 마크 업 언어는 무엇입니까? 하이퍼 텍스트 마크 업 언어. 좋아요. 따라서 HTML, 하이퍼 텍스트. 하이퍼 텍스트는 대부분의 경우, 웹을 의미합니다. 마크 업이 실제로 프로그래밍 언어, HTML 안 것을 의미합니다. 당신이 인치 로직을 표현할 수있는 말이 아니 잖아 이 루프를 가지고 있지 않습니다. 이 조건이 없습니다. 이 기능 이라기보다는이 없습니다. 오히려, 그것은 요소, 이상 제대로, 태그라고 이런 일이 있습니다. 그리고 이러한 요소는 시작 태그와 끝 태그가 나 개방형 태그와 닫힌 태그는, 이러한 태그는 일반적으로 브라우저에 무엇을 의미 거기에 예외가 있지만, 일을하고 중지합니다 뭔가를하고 시작합니다. 가끔 그냥 예를 들어 '여기 줄 바꿈을 넣어'입니다. 그리고 우리는, 굵게 향하고 사이에, 그 전날의 사례를 본 줄 바꿈 한 다음 다른 태그의 몇. 따라서 HTML 웹 페이지 작성되는 언어입니다. 나는 Google.com과 같은 이동한다면 그리고, 단지 자신의 홈 페이지를 당겨 당신은 마우스 오른쪽 버튼을 클릭하거나 관리하는 경우 클릭 기억 일반적으로,보기 페이지 소스보고 요즘은 후드 아래에 완전한 혼란하지만, 그건 때문에 컴퓨터는 공백 신경 쓰지 않기 때문에이 예쁘 할 필요가 없습니다. 하지만 우리는 그 부분을 확대하면 크롬, 그냥 멋진 것을 발견, 색상이 일을 코딩했습니다. 사실, 우리가 웹 페이지에서 본 최초의 태그입니다. 또, HTML 5,이 언어의 최신 버전, , 처음부터이 일이 없습니다 > 네, 우리는 전에 해결했습니다 명시 적으로 말하여 브라우저 '는 여기에 줄 바꿈을 넣어.' 그리고 그 때문에, 다시 브라우저는 할거야 것 같아 명시 적으로 어떤 마크 업 언어가 할을 알려줍니다, 당신이 도달 한 수는 없었지만, 그래서 한 두 번 또는 열 번 입력 그냥 관례 상, 모든 단일 공간으로 그런 결합거야. 당신이 정말로 줄 바꿈을하고 싶다면, 당신은 BR 태그를 사용해야합니다 지금 공지는 월요일처럼,이 태그의 / 안에두면 이 느낌이 바로되지 않습니다 만하기 때문에 줄 바꿈을 시작하는 것은 다음 사이에 아무것도를 중지합니다. 따라서 HTML에 국제 대회가 동시에 태그를 열고 닫 것입니다. 옆으로, 그렇게 일을 안 책에 웹 사이트의 많은이 표시됩니다. 그것은 할 또는 그렇게하지 ​​정확하지만, 우리는 논쟁하는 겁니다 그 디자인 현명하고 stylistically, 이거 더 있습니다 그리고 모든 태그는 모두 어떻게 든 열리고 닫혀 때문입니다. 그래서 지금의 저장 및로드 보자. 좋아, 브라우저에 돌아갑니다. 이제 우리는 진전이 있지만, 매우 충분하지입니다. 가 진행과 텍스트의 일부 이상 본문에 입력을 시작하자. 그럼 말을하자, 'A 빠른 갈색 여우가 게으른 개를 통해 이동합니다.' 그리고 지금 방금 몇 번 복사하여 붙여 넣기 해 우리가 텍스트의 단락을 의미합니다. 내가 여기 돌아 가자. 그런데 매우 좋지 않아. , 난 줄 바꿈을해야합니까, 그래서 괜찮아요 지금, 우리는 웹 페이지를 갖는 지점으로지고있어 즉, HTML 증명할 내용이 많이 불과 하나도 라인이 우리는 실제 단락 이러한 것들을 생각을 시작할 수 있습니다. 그리고 우리는 좀 더 깔끔하게 웹 페이지를 구성을 시작할 수 있습니다. 그리고 사실, 내가 할 수있는 것은 내 몸이 태그의 내부에 여기에 가서이며, 당신은 어떤 것이 '이 CS50 경우 알아요. . . ' 정말, 단락의 시작을 demarks 음,이 같은 태그를 보자. 단지 관례 상, 나 텍스트를 들여 보자,라고 말씀 드려야 이 단락은 여기서 끝날 것을, 그리고보다는이 줄 바꿈, 제가 말을하게하려면 어떻게해야합니까 이, 저기 새 단락으로 속해 그래서 난 그냥 신속하게이 물건을 모두 clobbering으로 들여 쓰기됩니다. 이제 우리는이 들여 쓰기 단락을 가지고 지금 우리 마크 업이 좀 더 많은 정보를 얻을 시작 우리가 뭘 하려는지과 의미 적으로 일치. 우리는 단락을 가지고 그러니, P 태그와 단락이라고 불러. 우리는 두 번째 단락을 가지고 그러니, P 태그와 단락이라고 불러. 이제, 브라우저는 일반적으로 무엇을 할 것입니다 단지 영어 책이나 에세이처럼되고, 어디 일반적으로 단락 사이의 줄 바꿈을 참조하십시오. 브라우저는 자동으로 그렇게 할 것입니다. 이제 우리는 두 단락을 가지고 우리는이를 계속할 수 있습니다. 이 메시지의 몸을 가지고 있지만, 물론, 웹에서 때, 그것은 일반적으로 텍스트 중 큰 모양 없습니다. 거기에 하이퍼 링크가있을 수 있습니다. 우리가하고 싶은 경우, 예를 들어, 거기에 몇 가지 링크를 포함 여기서 만들려고 웹 페이지가 뭐든간에에 관심이있을 수 있습니다 어떤 가정 - , 제가​​ Google.com으로 가자 이 날 빠른 갈색 여우를 검색 보자. 구글 이미지, 그리고 방법에 대한 이동 -이 귀엽다. 우리는이 같이 갈 수 있습니다. 그래서 여기에 우리가 게으른 개 이상 빠른 갈색 여우 점프가 있습니다. 그래서 난 그냥 데모를 위해서, 여기서 뭘 할 거예요, 이 이미지는 내 서버에 있다고 가정합니다 그리고 이러한 이미지를 만들어 왔습니다. 난 그냥 오른쪽 클릭하거나, 이미지를 클릭하여 제어 된 무엇입니까 그리고 만약 당신이 대부분의 브라우저에서 볼 수 있습니다하는 것은 약간의 메뉴입니다 - 그 일을 중단 - 당신이 링크 위치 복사 또는 복사 URL을 선택 할 수있는 작은 메뉴를 선택합니다. 그래서 내 HTML에 지금 돌아가, 내가 원하는 가정하자 다른 웹 페이지로 하이퍼 링크이 있습니다. 그것 때문에라는 태그는 무엇입니까? [학생, 이해할 수없는] >> 그래. 하이퍼 참조 할 수 있도록 HREF 그럼. 내가 가서 붙여 넣기하자 인치 그 가 너무 긴 URL, 그러니까 날 돌아 축소 보자. 닫기 괄호, 그래서 지금은 여기에 방법 구 발견 해당 URL은 꽤 긴 것 일 때문이다. , 제가​​ 빠른 갈색 여우의 끝으로 여기에 스크롤하자 그리고, 제가 있습니다. 따라서 파란색의 상단에있는 모든것이 코멘트입니다. 이건 내 DOCTYPE 선언, 그 후 다시입니다 당신은 복사하여 지금 믿음에 붙여 넣을 수 있습니다. 이것은 단지 브라우저줍니다 '여기에 일부 HTML 5이 오면'을 클릭합니다. 그 아래 라인 14 일, 제 실제 태그의 첫 번째입니다 여기 몇 가지 HTML 오기 전에로이 단지라고 여기 내 페이지의 헤드가 있는데, 여기 제목은 온다 그리고, 반대로, 그 제목 그거야, 그 머리에 그 거예요. 다음은 지금 내 페이지의 몸을 제공합니다. 지금 몇 새로운 태그 그래서 : H1은 1 제목을 의미합니다. 다시 몇 년 동안 HTML의 전통이 텍스트의 서로 다른 크기를 갖는. 그리고 다시 하루에, 각 하나가 크고 굵게, 일반적 의미. 그러나 큰하지만 그다지 크고 대담한이 H2도있다. 가지 거의 같은 크고 대담한 큰 것이 아니라 H3는,이 등등, h6까지 아래 쪽. 이 일하지만, H1, H2 및 H3는 정말 의미 아르 그들에게 더 많은 의미 론적 의미를하려면, 웹 페이지의 제목 : H1 정말 가고있다된다 텍스트의 같은 열 또는 뭔가 제목. 그래서 일부러 H1 CS50 검색> H1 말한 이 정말 제목, 내 페이지의 제목입니다 specifiy합니다. 제목 표시 줄 의미에서가 아니라 제목, 하지만 실제로 몸에, 웹 페이지 자체에 표시되는 제목입니다. 이제이, 당신은 아마 오늘이 무슨 추측 할 수 우리는 구문의 몇 가지 새로운 조각을 가지고 있어도. 이 형태입니다. 웹은 정말​​ 흥미로운 수 있도록 웹 사이트가 사용자의 입력을 찍을 때. 이 클래스에서 웹 프로그래밍에서 설정 한 문제에 우리는 웹 사이트, 당 SE를 만들어 않을거야 당신이 촬영 한 사진을 보여줍니다 정적 콘텐츠로, 또는 내 이력서와 나에 관한 것들입니다 그 물건들은 함께 넣어 상대적으로 쉽게 때문입니다. 그것은 웹에서 일 아름다운하기 어렵다 하지만 적어도 콘텐츠를 넣는 것은 아주 하찮은 것입니다. 누군가가 귀하의 웹 사이트를 방문 할 수 있습니다 때하지만 일이 정말 흥미로운 하고, 입력을 제공하고 양식을 작성 할 수 있습니다 확인란의 선택을 해제 할 수 있으며 웹 사이트와 상호 작용할 수 있습니다. 그리고 실제로, 아마 모든 웹 사이트에 당신이 아끼는 요즘, 모든 법정에서 어떻게 든 양방향입니다. 사용자 입력을 페이스 북, 구글, 등, 및 사용자 정의 출력을 생산하고 있습니다. 그래서 지금 그렇게 시작하자. 지금 가자 전환 단지 정적 콘텐츠를 마크 업에 대한 HTML을 사용하여의 로 대신 동적 컨텐츠에 대한 전송 메커니즘. 그리고 끝으로, 우리 자신의 검색 엔진을 구현 까. 보자는 다음과 마십시오. 다음은 폼 태그입니다. 작업 속성을 지정하는 사​​용자는이 양식을 작성한 경우 자신의 키보드로, 그것은 여기에서이 URL에 제출 될 것입니다. 그래서 바람을 피우고있는 것 같아요. 조금 더 우리를 데려다 줄 거예요 하나의 클래스가 전체 검색 엔진을 구현하는 것보다하면, 그래서 우리는 너무 말을, 프런트 엔드를 할 수 있습니다. 우리는 사용자가 검색을 수행 할 수 있습니다 부분을 다하겠습니다, 우리는 Google에 펀트의 정렬됩니다 검색 결과를 찾을 어려운 부분, 하지만 구체적으로, 나는 Google의 웹 서버와 얘기 할 겁니다 두 명의 매우 인기있는 방법 중 하나를 사용합니다. 하나는 우편되는, 결국 우리가 볼 수있는, 다른을하고, 빈도 사용하는 다른가 있지만. 그냥이의 아이디어를 상상 해보세요 가서 좀 콘텐츠를하려는 일부 검색 결과를 얻을 수 있습니다. 이, 당신은 아마도이 뭔지 알아 수 있습니다. 이 입력의 어떤 종류의, 그것은, 사실, 텍스트 필드처럼 보이도록거야 그 입력, 변수의 이름의 이름 때문에, 말씀 대회가 검색어에 대해 질문 할 예정이다. 또,이 입력의 유형 확인란이 될거야되지 않습니다; 이 메뉴 않을거야, 그것은 텍스트 필드 될거야 로 여기에서이 속성이 텍스트 상자로 표시, 줄 바꿈과 같은 거기로 또는 아닙니다. 그래서 우리는 그 태그 안에 슬래시로 빈 요소를 갖추고 있습니다. 그럼 난 줄 바꿈을 넣을 거예요, 당신은 당신이 무슨 짓을할지 추측 할 수 있습니다. 이 양식 입력의 또 다른 종류이다. 이 사람은 양식을 제출에 사용되는거야. 그래서이, 사용자가 양식을 제출하기 위해 클릭 할 수있는 큰 버튼이 될 것입니다 그 버튼에 레이블이 될 것입니다 'CS50 검색 할 수 있습니다.' 닫기 양식을 가까이 몸 가까이 HTML. 우리가이 웹 페이지의 형태로도 알아 보자. 그럼 내 브라우저에 가자고, 내가 로컬 호스트에, 여전히 가자. 제가 search0이라는 파일을 참조하고 싶다면이, 아직 index.html 인 경우 난 단지 입력 / search0.html을 할 수 - 내 실수의 첫 번째. 무슨 일이야? 나는 분명 권한이 없습니다 어떤 이유로이 파일을 액세스 할 수 있습니다. 작업과는 달리 우리가 지금까지 한 이유는,하지만 그건, C에 당신이 작성하는 프로그램, 당신의 runable로 간주되는 위치 귀하가 실행, 그, 웹에서 실제로는 그렇지 않아 상기 때때로 당신은 서버에 파일을 만들 수 있습니다 하지만 세상을 볼 수 싶지 않아요. 오히려, 당신은 세계의 어떤 파일을보고 싶어 하지만 다른, 단지 개인 정보 보호를 위해서. 그래서 당신이 웹에서 일을 할 때 선택의 기준으로 더 많은입니다. 그리고 저 실제로는 여기인가요를 입력하게 그리고 당신이 내가 갖고있는 파일을 볼 수 있지만, 기억 내가 오래 LS-리터한다면, 나는 나 한테 이런 파일에 대한 좀 더 자세한 내용을 제공하는 긴 목록을 가져올 게 그게 우리와 관련이 처음으로, 정말, 이제. 맨 오른쪽에 내 파일의 이름이납니다, 그리고 그들은 마지막으로 수정하거나 복사되는 시간. 여기이 숫자는 무엇인가? 당신은 기억하십니까? 바이트 크기는 파일이 얼마나 큰 것입니다. 그래서 모든 다른 파일보다 더 큰 여기에 로고 일종의을 갖고있는 것 같다. 이 내가 누군지, 난 이런 사람이야하고 들어 왔어요 어떤 그룹 하지만, 여기에 왼쪽에 암호화 된 일련의 비트 우리는, 과거에이 사실을 간략하게, 내 생각, 이야기 하지만이 권한으로 할 수 있습니다. 그래서 좀 헷갈리는 경우에도, RW는 아마도 읽기 및 쓰기 의미합니다. 따라서이 대시가 다른 사람들을 위해 권한의 다른 세트를 나타냅니다을 이용할 수 있습니다. 다음과 같이 그리고 패턴은 본질적입니다. 여기에 대시의 순서를 볼 때, 그들은 다음과 같이 다하겠습니다. 대시가있어, 다음, 세 개 대시가 다음 다른 세 명, 그 다음엔 또 다른 3 명이라고. 첫번째는 두 디렉토리에 대한 대시하거나의 광고입니다. 그럼 그거 하나는 아주 간단합니다. 이 폴더의 경우는 D라는, 그렇지 않으면 하이픈입니다. 이 몇 다른 경우가 있지만, 지금 우리는 파일과 디렉토리에 대한 관심됩니다. 이 다음 세 대시 - 그리고 인위적으로 공간을 삽입했습니다. 우리가 순간 전을봤을 때 그들은 거기에 분명 아니었다. 이것들은 파일 소유자의 권한은 하고 초 전이 읽기 및 쓰기되었다는에서 기억. 그게 바로 내가 때문에, 좀 전에이 파일을 만든 사람으로,했다 I, 그냥 기본적으로 리눅스 컴퓨터에서, 그 파일을 읽기 및 쓰기 계속 할 수있는 능력을 갖추고 있습니다. 따라서 운영 체제는 RW 자동으로 저를 제공합니다. 중간 사람들은 학생의 것을 내 그룹에 관계 제가 제품을 사용하는 유일한 사람이기 때문 어떤 종류의 어플라이언스에 의미가 없다. 그래서 나는 지금 당장은 좀 손을 흔들 보자. 그러나 마지막 사람은 웹에 가장 중요합니다. 이 세상에서 다른 모든 사람들이며, 사실 --- 그 의미 있다는 그 세계에서 다른 사람은 이 파일에 대한 권한을 갖습니다. 분명 문제가 그래서이 문제를 해결해야합니다 어떻게 든 세계를 어떻게 제공하여? 읽기 및 쓰기? 그게 아마 어리석은 짓이야? 나는 웹에있는 모든 사용자를 원하지 않는 내 페이지를 방문하여 어떻게 든 그 파일을 변경로 이동하기 위해, 비록 그들은 정말 HTML 파일을 못 하지만 단지 원칙적으로, 아마 그냥 그것을 읽을 수 있기를 바랍니다. 어떻게하면 읽어한다는 것은 무슨 뜻입니까? 그 사람들이, 실제 HTML에 관심거야 뜻은 아닙니다 하지만 브라우저는 그 마크 업 언어의 구문을 분석 할 수 있어야 위에서 아래로, 왼쪽에서 오른쪽으로. 따라서 웹에서 누군가를 읽을 수 있어야합니다, 그래서 제가 최소한 그것을 연구를 제공해야합니다. 나는 아마도 몇 가지 방법으로이 작업을 수행 할 수는 있지만 가장 간단한 여기에이 명령을 실행하는 것입니다. 그리고 chmod를, 변경 모드, + R 세계에서이 모든 사람 + 읽고, 다음 파일, search0.html의 이름입니다. 다시는 LS-저도 그래요 없다면, 그 파일이 변경되었다는 것을 그리고 사실은, 모두에 대한 연구를 했어요. 나 또한 내 그룹을 위해 켜져 만 그게 좋아요 나는 모두를에 설정하면, 우리 그룹은 그 하위 집합이기 때문이다. 그래서 너무 좋아요. 이것은 단지 컴퓨터가 지금은 읽을 만든 의미합니다. 지금 당신은 나를 다시 내 브라우저에 가자고, 새로 고침을 클릭합니다. 아 - 하. 우리는 지금 CS50 검색합니다. 아주 끔찍한 검색 엔진 - 조금 인위적으로 확대했습니다. 그러나 실제로 작동하는지 보자. 먼저, 클릭하고 페이지 소스를 볼 수를 제어하게, 제가 빠른 정신 검사를 해주세요. 크롬 안에 우리가 지금 자신이 만든 동일한 HTML을 표시 것을 확인할 수 있습니다. 하지만 여기 혼동하지 마십시오. 내가 여기있는 코드를 변경 시작할 수 없습니다 브라우저는이 코드의 읽기 전용보기가 때문입니다. 브라우저는 search0.html라는 파일에 대한 로컬 호스트를 요청했습니다. 이제 전적으로 우연입니다 어플라이언스의 브라우저로 동일한 컴퓨터에 있어야 발생합니다. 난 그냥 equivalently, www.facebook.com/search0.html 입력 한 가질 수 페이스 북이 그렇게라는 파일이 있다면, 제 한 후에는 HTML을 볼 수있을 것입니다. 물론, 나도 페이스 북에서 돌아 오면 파일을 변경할 수 없습니다. 그래서 지금 우리는 선을 흐리게의 일종이야. 어플라이언스는 웹 페이지를 제공하는 두 서버입니다 하지만 그 브라우저를 사용하는 것도 의미에서 고객의 실제로 서버와 통신합니다. 그래서 내 Google 검색 엔진이 성공한다면 보자. 내가 가서 빠른 갈색 여우를 검색, 입력 보자. 그리고 여기에도, 난 지금 내 자신의 검색 엔진을 갖추고 있습니다. 그러나이 어떻게 작동합니까? 스트레치의 비트,하지만 - 그리고 지금 당신은, 정확하게, 관심이 있어요 일부를 볼 수 없습니다. 어떻게 확인합니다. URL을 확인할 수 있습니다. 그것은, 그 그 방법을 밝혀 얻을라고, 슈퍼 - 간단합니다. 당신은 어떤 서버에서 결과를 좀 '하고 싶은 형태로 지정하면, 그런 일이 어떻게 할거야하면 양식에 입력 어떤 관점 그리고 URL에 넣어. 그것은 다음과 같이이 URL에 투입 방식을 표준화거야. 이건 내 액션 속성의 값했던 URL이납니다. 나는 양식이 결국 싶은 곳이에요. 하지만이 질문에 마크를 확인합니다. 이된다 사용자 입력을 제공 할 수있는 웹 컨벤션 is 웹 사이트에, 당신은 URL에 물음표에 추가 그리고 당신은 키 - 값 쌍을 아주 많이 있습니다. 그렇지 않으면 웹에서 매개 변수로 알려진 키의 이름 다음 등호가 다음 해당 매개 변수의 값을 수 있습니다. 그래서 기본적으로 변수 이름과 변수 값입니다 하지만 그 변수의 이름과 값은 HTML 양식에서 왔습니다. 왜 더하기 부호가, 당신은 생각하십니까? 내 단어 사이에 +를 입력하지 않았기 때문입니다. [학생, 이해할 수없는] >> 그래, 그건 단지 간격에 있습니다. 확률은 URL을 본 적이 때마다 있으며, 때문에 경우에만 그 안에 공백이 늘 집에없는 가 있다면, 당신이 실제로 복사하여 붙여 넣으 할 수 없습니다 IM에 또는 이메일로 끊어 것 때문입니다. 당신은 모든 일이 문자 중 하나가 연속 된 문자열 싶습니다. 따라서 브라우저는 음 - 음, 생각하는만큼 영리합니다. 그냥 공간을 넣지 마십시오. 내가 어떤 표준 방법으로 공간을 인코딩 보자. 이에 대한 규칙 중 하나는 브라우저가하는 것입니다 자동으로 다른 공간이 것 +를 넣어. 이제, 고지 Google은 어떤 사용자 친화적의되었습니다. 난 정말이 웹 페이지를 만들지 않았 하지만 자신의 텍스트 필드를 미리 입력 한 , 정확하게, 내가 뭘 인치 입력과 제가 게으른 강아지처럼 다른 무언가를 검색하려는 가정 해 봅시다. 난 그냥 다시 검색 여기에 입력 할 수 있습니다. URL이 여기에 변경되는 공지 사항, 하지만 실제로 내가 원하는 건을 검색 할 수 없다는 사실을 알 얼마나 URL을 작업을 이해하고. 나는 게으른 고양이를 입력 할 수 지금 발견 난 아주 게으른납니다 -해야 우리는? 난 우리가해야 기분. 난 아주 게으른 고양이를. 괜찮아요. 이것은 우리가 한 짓 중 제일 멍청한 것들 중 하나입니다. 하지만 그건 게으른 고양이입니다. 어쨌든, 여기 열쇠 테이크 아웃 뭐죠? 이제 우리는 HTTP의 세계에서 재생의 일종이야. HTML은이 마크 업 언어, 오픈 태그, 가까운 태그입니다 그 웹 페이지의 콘텐츠를 렌더링하는 방법을 브라우저에게 알려줍니다. 하지만 당신은 인터넷을 통해 전송 데이터를 시작할 때 곳이 프로토콜 웹 브라우저와 서버 사이에 그게 하이퍼 텍스트 전송 프로토콜이 끝난 소요으로 알려져 있습니다. 이 인간 대회의 종류이다; 샘과 난 월요일에 손을 흔들었다 때, 연결을 시작하고 여기에 연결, 같은 생각을 종료. 어떻게 Google의 결과가 나에게 돌아 오는거야? 내 양식 제출 Google에 어떻게가는거야? 음, 정말 무슨 일있는 다른 날부터 기억 당신이 웹 페이지는 요청 후드 아래에, 브라우저가 같은 다소 - 암호화 메시지를 보내 기본 홈 페이지 / HTTP/1.1을 GET. 또는,이 경우 때문에 특히 이전 요청 sea​​rch0.html이는 다소 - 암호화 된 메시지 것 내 브라우저는 어플라이언스에 보내는. 또는, 구글의 경우, 어떻게 실제로 전송 로 플러스가, / 검색, 그리고 나선? Q = 게으른 고양이에 대한 요청입니다. 그래서 메시지가, 난 인간이 입력 적이 있다는 사실을, 하지만 브라우저에서 전송되는이 HTTP가 발생하는 방법입니다. 이것은 우리 흔들리고 것에 손 동일합니다. 이 요청이며, 응답을 보내려고 서버입니다. 그러니 후드 아래에 이것 좀 봅시다. 전에, 우리는 브라우저에서이 특별한 분야를 열 수 있습니다. 페이지보기 요소를 검사한다. 요소를 검사 그럼 아래, 크롬에 무슨 일이 있었 있다는 것을 그리고 IE와 파이어 폭스 비슷한 메커니즘을 가지고 우리는 접근이 개발자 도구를 갖추고 있습니다. 보통 사람들이 탭을 사용하지 마십시오. 하지만, 지금 무슨 일이 벌어지고 있는지에 관심 네트워크 수준의 후드 아래에. 여기서 네트워크 수준을 끌어하면, , 내가 가서이 창을 확장하게 여기이 항목을 열고 헤더보세요. 제가 웹 서버에서 파일을 요청했을 때 어떤 현상이 발생 내 브라우저가 일을 아주 많이를 전송합니다. 이 날 소스를 확인할 수 있습니다. 따라서 요청 헤더에 따라, 이는 그저 좀 진단 결과를 보여주는 크롬입니다 정렬 일종의 디버거처럼, 내가 여기서 강조 표시 한 것은 정확하게 상태가됩니다 무엇 크롬 search0.html라는 파일을 요청하기 위해 서버에 보낼 수 있습니다. 그것은 그것의 이름이 어떻게 생각하는지 서버를 말하는 이 호스트 콜론 필드 덕분에 다음 몇 가지가 여기에 꽤 난해한 것들, 날짜 및 시간과 뭔가 같이, 무언가, 브라우저가 인식 할 수있는 언어와 하지만 정말 중요한 줄은 여기에 처음 두 수 있습니다. 서버가 무엇을 어떻게 대응합니까? 자, 여기 아래로 스크롤하면 그리고이 물건의 소스를 볼 것을 그 서버 뿐만 아니라 다소 이상한 메시지와 함께 응답했다 304 수정되지 않았습니다. 그건 좀 이상 하네, 저 실제로는이 문제를 해결 봅시다. 저 아래로 Shift 키를 누른하자 여기까지 새로 고침을 클릭합니다 실제로 처음이 요청을하기 위해 브라우저를 강제로 수 있습니다. 그럼 내가 확대 해, 우리는 그 서버의 응답 지금 볼 수 있습니다, 나는 변화를 개최하기 때문에, 200 OK입니다. 그래서 당신은 아마도 수 200 본 적이 없어 웹의 컨텍스트,하지만 숫자 당신은 때때로 서버에서 예기치 않게 본 적 있어요? 404 찾을 수 없습니다, 파일, 403, 금지, 500, 서버 오류가 발생했습니다. 그래서 세상은 웹에서 사용하는 이러한 숫자 코드가 있습니다 그냥 C 함수와 같은 오류를 나타내는 오류를 반환 할 수 있으며 메인은 종료 코드를 반환 할 수 있습니다. 이 모든 잘 들어 뜻 이지요 200하지만, 당신은 거의 볼 수 없습니다. 무슨 일을 뜻하기 때문에 그리고 304 당신은 아마 못 보는거야? 그 어떤 것도 있습니다 - 우리가 다시 이걸 시뮬레이션 할 수 있는지 보자 - 아, 지금은 협력 아닙니다. 304, 수정하지 말 왜 서버는 응답 거죠? 음, 효율을위한, 당신을 위해 자동으로 웹 서버, 파일이 변경되지 않은 경우, 그것은 전체 HTML 파일을 재전송하지 않습니다. 단지가 변경되지 않았 브라우저를 말해주지. 당신이 이미 복사본을 사용합니다. 따라서 캐시의 개념은 웹에서이 성능을 위해, 그래서 당신은 시간과 폐기물 대역폭을 낭비하지 않게 다시 파일을 다운로드하고 다시 불필요. 그러나이 웹 페이지는 지금, 슈퍼 - 단순 그리고는 나에게 돌아 왔을 HTML을 보여 주었다. 의가 실제로 빠른 갈색 여우 같은 Google 검색을 수행하는 지금 네트워크 탭을 사용하여 보자. 저 한 다음 CS50 검색을 클릭하자 지금, 물건을 아주 많이 돌아 왔을 여기 아래에 발견 나는 Google.com와 같은 실제 웹 사이트를 방문 할 때 때문에, 그들은 이미지를 가지고 있고, 그들에게 텍스트를 가지고, 그들은 거기에 자바 스크립트를라는 언어가 있습니다. 여기에이 테이블의 그럼, 모든 행 Google은 내 하나의 요청에 대한 응답으로 뱉어 것을 나타냅니다. 내 관심은 하나는하지만,이 첫 번째입니다. 제가 검색으로 이동한다면, 요청, 여기에 소스보기를 클릭 사실은, 내 브라우저에서 암호화 된 메시지를 보낸 것을 알려줘야 구글은 여기에 두 줄됐는데 우리가 지금 무시됩니다 여기에 몇 가지 마법 정보를 다음. 그러나 통지 역시 어떤 크롬과 매우 편리합니다 또한 저에게 인치 전송 된 쿼리 문자열을 보이고있어 따라서이 아닌, 문자 그대로 전송하는 나에게 보여 나는 단지 디버깅 목적으로, 크롬 해독 보면 우리 같은 개발자를위한, 그것은 나에게의 인간 친화적 인 버전을 표시 있어요 - 그 무리가, 당신은 여우를 어떻게 쓰는지하지 않습니다. 난 그냥 지금은 알았어 ... -하지만 내가 이성적으로 입력 한 내용을 보여준다는 겁니다. 한편, 서버에서 돌아 왔을 때 반응은 다시 200 OK입니다. 그러나 물론, 그 응답에 포함 우리가 실제로 페이지의 HTML을 보면 - 죄송합니다,이 오늘 틀려서 사라지고 약간의 키보드 단축키입니다. 나중에이 처리됩니다. 우리는 실제로 페이지의 소스를 볼하면, 누구를, 응답을 클릭하여 여기에 할 수 이 실제로 서버에서 해당 암호 200 OK 메시지에 추가, 다시 침을 뱉을 일이야. 약간 이상한,하지만 어디 있는지 왜 이러는거야? 자, 다른 일을 할 까. 또 다른 다소 - 암호화 된 명령 하지만 후드 아래에 무슨 일 정확히 우리에게 보여 거기에 깔끔한 중의 하나이기도 해. 여기서 내 Mac에 돌아왔다 그래서, 나는 연결 한 다른 서버에 SSH, 보안 쉘이라는 프로그램을 통해 하버드의 컴퓨터의 대부분은 명령을 차단 왜냐면 우린 부족한 경우 traceroute라는 일부 서버에서이 명령은이 있기 때문에 그 말은 당신이, 포인트와 b 사이의 경로를 추적 할 수 있습니다 그리고 지금까지 우리는 부여에 대해 완전히 받고 있어요 나는 Google.com에 입력하고 어떻게 든 다시 데이터를 얻을 수 있다는 중간 전국 또는 중간 전세계에서. traceroute를 통해 우리는 실제로 좀 더 깊이에서 잠수 할 수 인터넷이 작동하는 방식에 관해서, 그리고 후드 아래에 무슨 일이 일어나고 있는지를 참조하십시오. 그러니 어서 가서 임의로 말에 Stanford.edu을 경로를 추적하게, 이는 전국이며, 입력하고 Enter 키를 누르십시오. 이 명령은, 슈퍼 빠른 또는 수퍼 속도가 느릴 수 있습니다 하지만, 지금은 선으로 선을 어떻게 표시 우리와 팔로 알토 (Palo Alto), 또는 스탠포드 사이의 단계 또는 홉의 모든 하나입니다 그들의 웹 서버가있는 곳. 따라서 불구하고 다음 행의 각이 더 구체적으로 무엇을 나타 냅니까? 인터넷에서 전문 용어의 조각? [학생, 이해할 수없는] >> 무슨 뜻이지? [학생, 이해할 수없는] >> 아,이 시간이 있지만, 각 행을 어떻게합니까 - 내가 힙합으로 무엇을 의미합니까? 음, 라우터라고 인터넷에 이런 일이 있습니다. 그리고 라우터, 이름에서 알 수 있듯이 지점에서 경로 정보를 B를 지정합니다. 그러나 a와 b 이외의 여러 지점이 있습니다. C와 D와 E와 행 1 ~ F가 있어요 하는 내 컴퓨터의 IP 주소로 갈거야 또는 고유 내 컴퓨터를 식별하는 내 숫자 주소,, 실제로 여섯 번째 웹 서버이며, 15 단계, 분명히 어떤이의 유추하거나, 스탠포드에서 자신의 웹 서버의 버전 6거야. 그러나 스트레이트가 좀 그래, 우리는 경로를 볼 수 있습니다 내 공의와 1의 스탠포드 내 컴퓨터에서 진행되는. 따라서 1 단계 내 컴퓨터의 주소입니다. 인터넷의 모든 컴퓨터에는 다음과 같은 고유 한 식별자가 있습니다. Number.number.number.number. 어디에 선가이 캠퍼스에서, 아마도 과학 센터에, 라우터는 코어 게이트웨이 2 te83, 그게 무슨 뜻인지 몰라도,라고합니다 그래서이 도로는 그들의 트래픽이 많이 라우팅하는 하버드의 크고 이쁜 라우터 중 하나입니다. 여기 하버드의 라우터의 또 다른이야,이 사람은, 국경 관문입니다 국경의 의미는 어디 캠퍼스의 주변에있을 거에요. 그런 다음 북 '선택입니다 NOx를 한 행 4,가 이는 큰 ISP, 인터넷 서비스 제공 업체입니다 하버드처럼 그 곳까지 연결할 수 있습니다. 하지만 일이 6 호선은 조금 흥미로운. 내 비트 갑자기 어디 있나? 캔사스. 세계는 이런 것들을 많이 공항 코드를 사용하는 버릇이있다 또는 주 또는 도시에 대한 최소 약어에, 그래서, 60 밀리에 보이는 것처럼 정보 패킷, 0의 1 내 노트북​​에서 나온 60 MS에서 캔사스 모든 방법 다시 알았어요. 또한, 캔사스 후, 그들은 아마 휴스턴를 통해 여행을했다 본 서버의 이름으로 제안했다. 그러니으로는 인터넷에서 서버는 숫자 주소가 있어야합니다 또한, 선택적으로, 인간이 주신 것을 약간 더 인간 친화적 인 주소를 가질 수 있습니다. 이제 8 단계에서, 우리는이게 뭔지 모르겠어요. 때때로 라우터는 가지 당신을 무시 하고 그냥 질문에 대답하지 않는, 잘 됐네 그럼. 8 단계 후 한 무리가 어디있어? L.A. 물리적 할 우리에게 6 + 시간 같은 인간 자질이 만 78 MS에서 발견, 그렇게 멀리 여행 인터넷 78 밀리 초에 대한 정보의 패킷을집니다. 10 단계는뿐만 아니라 LA에 있으며, 11 단계 스탠포드 근처, 북쪽으로 갔을 것 같습니다. 이 자신의 경계 라우터 또는 경계 라우터입니다. 우리를 무시 아르 스탠포드에서 몇 단계, 그리고 마지막으로, 우리는 87 MS에서 웹 서버에 도달합니다. 지금, 옆 이러한 숫자의 모든, 단지 데이터가 나 한테 얻을하는 데 걸린 시간을 말해 이러한 라우터의 각,하고 축적 아닙니다합니다. 이 프로그램은 무엇이며, 그 먼저 첫 번째 라우터에, 본질적으로, 메시지를 보냅니다. 그런 다음 두 번째 라우터에 한, 다음 하나 세 번째 라우터에, 각 시간을 측정. 따라서 이론적으로,이 시간이 증가 될 것 또는 적어도 상당히, 서로 가까이에 그리고 사실은, 캠퍼스 바로 여기있는 사람들은 수퍼 작은 수 있습니다. 당신이 전국 각지에서 진행을 시작 자마자, 그 데이터를 필요 좀 더 여행을 100 밀리에 가까운, 어림 잡아서 수 있습니다. 그러나이 지금 다른 방향을 가자. 어떻게 영국의 캠브리지 대학은 어때? 나를 대신 캠브리지에 www.cam의 traceroute를 실행하자, 학술하십시오. 교류. 영국, 히트는 여기 입력합니다. 그래서 꽤 빨리했다. 내 데이터는 그대로 시간을 초 찰라에, 캠브리지, 영국으로 갔다. 그러니 찍은 경로를 보자. 하버드, 하버드, 하버드, 북부 뭐든 빵 그리고 이는 ISP이며, 다음이 북부 '선택이며,. 6 단계와 7 단계, 라우터 6과 7 사이에 무엇입니까? 대서양 (Atlantic Ocean). 그리고 우리는 사실에서이를 유추하고 그 여기 밀리 여기에 20 일부터 80 밀리로 이동합니다. 그럼 뭔가가 줄 이상 얻으려면 걸릴, 60 밀리했다. 그리고 아마도 물을 큰 몸이었다. 어떻게 그 이후로 계속된다? 자, 우리는 런던에 나중에 단지 88 밀리. 더 런던, 더 많은 런던, 여기가 어딘 확인하지만, 저희는은 런던 외곽 가정하지 여기 캠브리지, 그리고 마지막으로 - 캠브리지 그대로, 대학 그럼. something.net, 그리고 마지막으로, 선 16, 자신의 웹 서버는 겉보기에 전갈이라고합니다 우리가 WWW로 알고 있더라도 후드 아래에. 어떤 종류의 마음 - 불고, 나는 생각합니다. 내가 이런 짓을 처음, 너무 내 마음을 날려 버렸어. 불행하게도, 하버드 트래픽의 일반적으로, 네트워크에서이 종류를 차단합니다. 그래서 당신은 쉽게 슈퍼 할 수 없습니다. 실현하지만, 여기이 가능합니다. 괜찮아요. 의은 우리가 5 분 쉬었다합시다. 우리가 다시 와서 깊이에 잠수 할것입니다. 그래서 우리는 돌아, 우리는 가지 여기에 몇 가지 다른 방향으로 약 ambled습니다. 그럼 정확히 무슨 일이 일어나고 있었는지 요약 보자. 우리는 HTML이라는 언어에 대해 이야기 대화를 시작했다. 다시 말하지만, 아닌 프로그래밍 언어입니다. 그냥 마크 업 언어입니다 그 웹 페이지의 형태 미학 및 콘텐츠의 구조에 대해 대부분입니다. 그러나 HTML, 따라서 메커니즘의 어떤 필요 웹 브라우저와 서버 사이에 여행. 이 다른 언어의 위에 놀이기구의 HTML 따라서 정렬, 이상 제대로, HTTP라는 프로토콜. 그리고 우리가 지금까지 본 적 한대로 HTTP, 손을 흔들어이 인간 대회에 유사 가지입니다. 브라우저가 서버에서 페이지를 요청하려고하면, 그게 무엇인지는 브라우저에서 서버로 요청을 "GET"보내 다음 서버가 200 번호로 응답, 모든 괜찮아, 뿐만 아니라 HTML 또는 404 같은 좋은 번호로, 파일을 찾을 수 없습니다. 그러나 한편, HTTP 자체가 당 SE, 인터넷하지 않습니다. HTTP, 그냥 인터넷의 기능 서비스입니다 많은 G 채팅과 같은 또 다른 서비스입니다 많은 이메일처럼 또 다른 서비스입니다. 우리가 인터넷에서 할 수있는 모든 일이 있어요. HTTP는 이러한 응용 프로그램 중 하나입니다. 그럼 상단에 - HTTP 뭔가 상단에 있습니다 우리가 이름을 언급하지 않은 것들, 당신은 이름, TCP / IP를 들어 본 적이 있습니다. 그래서 우리는 그냥 얘기 한 이야기​​는 모두 약 어떻게 데이터는 지점에서 B라는 지점까지 이동한다. 그리고이 경우에, 우리는 매우 낮은 수준에서 본 라우터는 라우터에 라우터에 라우터에 어떻게 데이터를 실제로 전송되고 있습니다. 그러나 그 길을 따라 등 다양한 장애 발생 예정이다. 이러한 라우터 외에, 인터넷에 방화벽이라는 것과, 그래서 데이터가 우리가 전달되었습니다 등 여러 나에게서 스탠포드, 나 캠브리지, 이 수준에서,로 전송됩니다, 뭔가가 IP 주소를했다. 우리는 잠시 전에 이것을보고, 그리고 IP 주소 양식 w.x.y.z의 단지 숫자 주소입니다 이러한 각 사이이고, 제공 또는 0과 255을 당신은 매우 그 숫자를 모두 사용할 수 없습니다 찬사를 보냅니다. 그러나 이러한 장소 소유자의 각각 0과 255 사이의 숫자입니다. IP 주소 그래서 요즘은 32 비트입니다. 자, 우리에게 세계에서 얼마나 많은 가능한 IP 주소를 제공? 약 4,000,000,000 때문에 우리는 2의 거듭 제곱으로 계산 할 때마다 무언가의 32까지 모두가, 그게 우리에게 40 억 제공합니다. 그럼, 그 IP 주소의 많이하지만, 읽기 수도 또는 지금 인기있는 언론에 발견 할 수 IP의 새 버전을 향해 밀어 넣기가 IPv6를했다. 지금 우리는 버전 4를 사용하고 있습니다. 정말 버전 5도 없어, 우리는 6 바로 점프하고 있습니다. 버전 6은 거대한 놀랬 IP 주소에 대한 128 비트를 사용하는 것이다. 우리는 상당히 오랫동안이 부족해서는 안 하지만 우리는 버전 4 IP 주소가 부족하기 시작했다 우리 모두는 노트북과 데스크톱 등뿐만 아니라 일을 가지고 있기 때문에 대부분의 사람들이 휴대폰을 가지고 우리의 많은 다른 장치가 티보 (TiVo)와 IP 주소 스스로가 그런 식처럼. 하버드 자체가 컴퓨터 수만 있습니다. 그래서 세상이 진정으로이 양식의 적어도, IP 주소 부족합니다. 따라서 앞으로 몇 년 동안, 당신은 주소를 볼 거예요 자신의 컴퓨터에 아마 천천히 변경 점점 더 많은 기업과 대학의 최신 버전을 지원하기 시작으로. 그러나 IP 주소는 컴퓨터 컴퓨터 B에서 데이터를 요청하기위한 충분하지 않습니다. 컴퓨터 B는 서버가 될 수 있기 때문에, 그리고 서버는 아까 언급 한 바와 같이, 일 움큼을 수행 할 수 있습니다. 이 웹 페이지를 호스팅 할 수 있습니다, 그것은, 이메일 서버가 될 수 가 스카이프 (Skype) 서버가 될 수는 G 채팅 서버가 될 수 있습니다. 서버에 제공 할 수 있습니다 이러한 모든 다른 서비스 모든 물리적으로 같은 컴퓨터에있을 수 있습니다. 따라서 IP 주소뿐만 아니라, 세계는 인터넷에서 포트라는 것을이 있습니다. 포트는 단지 숫자입니다, 그래서 HTTP에 대한 고유 번호가 있습니다. 의 숫자는 80입니다. HTTP는 암호화 된 HTTPS에 대해보다 구체적으로 숫자 443을 사용하지만. 당신은 보안을 위해 s를 볼 때마다 다른 번호를 사용하여 같네요. 그렇지 않으면 이메일로 알려진 SMTP라는 걸 사용 25 같은 다른 번호는,,,이 있습니다. SSH 22이라는 게있어 및 기타 포트의 전체 무리가 밖에있어. 이제, 우리 인간은 거의 숫자를 볼 수 없습니다. 그러나, 당신은 http://www.facebook.com 같은 주소를 입력하면 당신은 HTTP를 사용하기 때문에 브라우저가 비밀리에 80를 삽입합니다. 당신이 대신 입력 HTTPS는 아무도 모르게 443을 삽입면. 나는 브라우어를 끌어한다면 우리는 수동으로 본다는 어떤 수 그리고 http://www.facebook.com:80로 이동합니다. 따라서 명시 적으로 웹 사이트의 단지 이름을하지 인용 하지만 제가 이야기하고자하는 포트 입력하고 Enter 키를 누르십시오. 브라우저가 가정했기 때문에, 사라 공지 사항 오, 80, 난 당신에게 그걸 보여 귀찮게하지 않을거야. 그러나 이것에 대한 이유는 실제로 사람이 이메일을 보내하고자 할 경우 즉, 정말 SMTP되는 것을 포트 25에서 그들에게 보내는됩니다. oversimplification의 비트,하지만 몇 친구가 누가 실제로 페이스 북에서 일하고, 그들, 마찬가지로, 이메일을 수신 서버가 있습니다. 당신이 이메일을 보내 어떤 시간, 어떤 Gmail은 당신을 위해 일합니다 또는 Outlook 또는 어떤 프로그램을 사용, 아무도 모르게이 경우,뿐만 아니라 25 그 번호를 삽입의 일종 이죠. 이 IP 주소와 고유하게 식별 번호의 조합입니다 인터넷에서 컴퓨터와 그 컴퓨터의 특정 서비스를 제공합니다. 지금, 물론, 우리 대부분은 아마 수동으로 IP 주소를 입력 한 적이 없습니다. 아마 당신은 어플라이언스에,하지만 현실 세계에서 많은하지 있습니다. 왜 우리는 브라우저에 IP 주소를 입력하지 마십시오? 그것은 일 것입니다 사실, 우리는이를 볼 수 있습니다, 내가 당신을 보여 드릴게요 Mac이나 PC에 하버드의 캠퍼스에서 가장 어디서나 작동해야 다른 명령을 사용합니다. nslookup을, 이름 서버 조회라는이 명령이 있어요. 제가 www.cnn.com를 보면, CNN이 있다고 판명 - 오, 흥미 롭군요. CNN은 아마존 웹 서비스를 사용하기 시작했습니다. 당신은 클라우드 컴퓨팅, 클라우드 컴퓨팅의 가장 큰 플레이어의 아마존 하나 알고 있습니다. 난 그냥 한거야, 내가 한 말, '나에게 CNN의 웹 서버의 주소를 알려' 하지만, CNN의 웹 서버가 아마존에 의해 관리되는 것이 밝혀 아마존 웹 서비스는이 제안합니다. 그리고 서버의 주소는 여기입니다. 이 작동하는 경우들이 아마존을 사용하여 사용하지 않았기 때문에 그래서, 잘 모르겠어요. 입력 http://를, IP 주소, -; 있지만, 이렇게 해보자 그 계획은 실패로가는거야? 예. 이 일을 예정이다. 인터넷 슈퍼 - 느슨한입니다. 그러나 순간에, 당신은 어떤 뉴스를 볼 수 있습니다. 우리는 간다. 뱅크 오브 아메리카는 고소당했습니다있어. 괜찮아요. 이 IP 주소는 단지 www.cnn.com의 대명사가에게 무슨 일이 있기 때문입니다. 물론, 그것은 말 50.112.94.127에서 웹 우리를 방문하는 무시 무시한 마케팅입니다. 기억 없었어요. 그래서, 요즘 당신은 일을 기억 할 수 1-800-COLLECT 또는 기억술처럼 세상이 전화 번호를 내놓았다. 중, 휴대폰하기 전에, 기억하기보다는 열심히했다 당신은 그걸 그냥 입력하고 잊어 버리 될 때까지. 웹 그래서도, 이름과 IP 주소의 규칙을 가지고 DNS 서버가 불러 이러한 일이 있습니다 이름과 그 반대에 IP 주소를 변환 도메인 이름 시스템 서버. 의 무엇 후드 아래에 무슨 일 수 있도록. 결국, 우리는이 매우 낮은 수준의 프로토콜 TCP / IP를 가질 즉,, 정말로 공의와 1의 인터넷을 통해를 도착 그리고 가상 봉투에 넣어 넣어 그렇고, 당신이 가만히 있으면하고, 봉투 외부에 쓰기 목적지의 IP 주소뿐만 아니라 숫자 포트 번호 이 얘기하고 싶어하는 그 대상에 대한 서비스. 한편, 봉투에 반송 주소로 알려진 무언가도가 당신의 IP 주소를되도록 CNN 당신에게서 정보의 패킷을 오면, ,이 가상 봉투를 여는 사용자가 홈 페이지를 원하는보고 만약이 가상 envelope 누구에게 HTML를 다시 보낼를 보낸 부분에서 알고 있습니다. 그럼 좀 더 자세히이를 살펴 보자. 이 몇 년에서 Ericson라는 회사에서 다시입니다. 그리고, 인터넷이 실제로 어떻게 작동하는지와 함께 자유를했습니다 하지만 여기에 단순한 분필까지보다 훨씬 더 시각적 인 그림을 그린다. 그래서 "인터넷의 비트."을 제공 역사상 처음으로 [내레이터] 사람과 기계의 꿈을 실현 함께 노력하고 있습니다. 더 지리적 경계를 알지 못 연합 힘. 인종, 신념, 또는 색상에 관계없이. 통신 진정으로 함께 사람들을 제공합니다 새로운 시대. 입니다 인터넷의 새벽. 작동 방법을 알고 싶으십니까? 인터넷에 여행을 시작하려면 여기를 클릭하십시오. 해당 링크를 클릭하면 이제 정확히 어떻게 된거야? 당신은 정보의 흐름을 시작했다. 이 정보는 개인 메일 룸으로 들어가 여행 어디 씨 IP 패키지는 어서, 어서 라벨 및 그것의 방법에 보냅니다. 각 패킷은 그 크기 제한됩니다. 메일 룸 정보를 나눌 방법을 결정해야합니다 하고 포장하는 방법. 이제 패키지는 중요한 정보를 포함하는 라벨이 필요 보낸 사람의 주소, 수신기의 주소, 그리고이 패킷의 종류 등. 특정 패킷이 인터넷에 외출되어 있기 때문에하면, 또한, 프록시 서버의 주소를 얻을 우리가 나중에 보게 될 끝난다는 건 특별한 기능이 있습니다. 패킷이 로컬 영역 네트워크 또는 LAN에 시작됩니다. 이 네트워크는 모든 로컬 컴퓨터에 연결하는 데 사용됩니다 ' 건물의 물리적 벽 내의 정보 교환을위한 라우터, 프린터, 등등. LAN은 불행하게도 매우 통제 곳이며, 사고가 발생할 수 있습니다. LAN의 고속도로는 모든 유형의 정보들이 즐비합니다. 이러한 IP 패킷 노벨 패킷, AppleTalk 패킷 수 있습니다. 그들은 평소와 같이, 교통에 대한거야. 로컬 라우터는 필요한 경우 주소를 읽고 다른 네트워크에 패킷을 올렸 으니까요. 아, 라우터. 겉으로 분열증 세계에서 통제의 상징. [라우터는 중얼 자체 이야기] [나레이터]이 그는 무관심한, 조직적, 체계적인입니다 보수적 인, 때로는별로 속도를. 하지만 적어도 그는 대부분의 경우 정확한 것입니다. 패킷이 라우터를 떠나, 그들은 기업 인터넷으로의 길을 와 라우터 스위치 향합니다. 라우터보다 효율적 비트, 라우터 스위치는 신속하고 IP 패킷을 느슨하게 연주 deftly의 길을 따라 그들을 라우팅. 디지털 '핀볼 마법사', 당신이 가만히 있으면. [자체 얘기하는 라우터 스위치] [내레이터] 패킷이 목적지에 도착 그들은, 네트워크 인터페이스에 의해 픽업하고 다음 단계로 보내십시오. 준비 이 경우, 프록시. 프록시는 중간 사람의 종류로 많은 기업에 의해 사용됩니다 인터넷 연결의 부하를 줄일 수 있도록 및 보안상의 이유로,뿐만 아니라. 당신이 볼 수 있듯이, 패킷의 콘텐츠에 따라 다양한 크기의 수 있습니다. 프록시는 패킷을 열고 웹 주소 또는 URL을 찾습니다. 주소가 허용 여부에 따라, 패킷는 인터넷에 전송됩니다. 프록시의 승인을 충족하지 않는 주소는 그러나이 있습니다. 즉, 기업 또는 관리 가이드 라인을 말씀하는 것입니다. 이러한 summarily 처리됩니다. 우리는 그 누구도이 없습니다. 성공하는 사람들의 경우, 다시 도로입니다. 다음은, 방화벽. 기업 방화벽은 두 가지 목적을 제공합니다. 그것은 인트라넷에 오는 인터넷에서 다소 불쾌한 일을 방지 그리고 또한 인터넷에 발송되는 민감한 기업 정보를 방지 할 수 있습니다. 일단 방화벽을 통해, 라우터는 패킷을 집어 들고 우리가 말대로, 많은 좁은 도로, 또는 대역폭에 그것을 저장합니다. 분명히, 도로가 그들 모두를 지켜 볼 수있을만큼 광범위하지 않습니다. 자, 당신은 길을 따라 그것을하지 않았나요 모든 패킷에 무슨 일이 궁금 수 있습니다. 그런데, 언제 씨 IP는 인정을받지 않습니다 패킷이 때문에 시간에 접수되었는지 그는 단순히 대체 패킷을 보냅니다. 우리는 지금 인터넷의 세계를 입력 할 수 있습니다. 우리의 전체 세계에 걸쳐 상호 네트워크의 spiderweb. 여기, 라우터 및 스위치는 네트워크 사이의 링크를 설정합니다. 이제 인터넷은 찾을 수 있습니다보다 완전히 다른 환경입니다 귀하의 LAN의 보호 벽 내에 있습니다. 여기까지,이 서부. 넓은 공간, 많은 기회, 탐색 할 것과 이동 장소도 많고. 거의 제어 및 규제 덕분에, 새로운 아이디어는 가능성의 봉투를 전달하는 비옥 한 토양을 찾으십시오. 그러나이 때문에 자유, 특정 위험 또한 숨어. 자네가 죽음의 무시 무시한 핑 (ping)을 만날 때 알 길이 없어, 정상적인 요청 핑의 특별 버전 어떤 어떤 바보가 엉망까지 의심하지 않는 호스트를 최대 알았는데. 우리 패킷이 걸릴 경로, 위성을 통해 할 수 있습니다 전화 회선, 무선, 심지어 해외 케이블. 그들은 항상 가장 빠른 또는 가장 짧은 경로가 가능하지 말아요 하지만 결국 갈 것입니다. 이 때때로이라는 이유 겠지 "월드 와이드 잠깐." 그러나 모든 일이 원활하게 작동 될 때 당신은 말 그대로 모자의 드롭에 다섯 번 이상 세계를 회피 할 수 있습니다. 모든 지역 통화 이하의 비용. 우리의 목적지의 끝 부분을 우​​리는 또 다른 방화벽을 찾을 수 있습니다. , 데이터 패킷으로 관점에 따라 방화벽은 보안이나 무시 무시한 적의 보루가 될 수 있습니다. 그것은 모두가하고있어, 당신의 의도가 뭐야 어느 쪽이에 따라 달라집니다. 방화벽은 그 기준에 부합하는 만 패킷에 있도록 설계되어 있습니다. 이 방화벽은 포트 80 및 25 일에 운영됩니다. 다른 포트를 통해 입력하려는 모든 시도는 비즈니스에 문을 열지 않습니다. 포트 25가 메일 패킷에 사용됩니다, 포트 80는 인터넷에서 웹 서버에 패킷 입구에 있습니다. 방화벽 내부 패킷은 더 철저하게 검사를하고 있습니다. 일부 패킷은 세관을 통해 쉽게 확인 다른 사람들은 단지 조금 이상한 바라보며. 이제 방화벽 임원은 쉽게 속지되지 않습니다 이러한 사망 패킷의 ping이 정상 핑 (ping) 패킷으로 자신을 위장하려고 할 때 있습니다. [패킷 이야기 방화벽 임원] [내레이터]이 여기까지 할 정도로 운이 좋은 사람들 패킷 들어, 여행은 거의 끝났습니다. 단지 웹 서버에 최대 연결되는 인터페이스 줄이야. 현재, 웹 서버는 여러 가지를 실행할 수 있습니다 메인 프레임에서 책상에 컴퓨터에 웹 캠 있습니다. 왜 당신의 냉장고? 당신은 자질이있는 경우 적절한 설정을 사용하면 확인할 수 있습니다 카챠 토레 치킨에 대한, 또는 쇼핑을해야하는 경우. 단,이 인터넷의 새벽입니다. 거의 아무 것도이 가능합니다. 하나 하나는, 패킷이 접수 열어 압축을 푼. 에 포함 된 정보, 즉, 정보 요청, 웹 서버 응용 프로그램에 전송됩니다. 패킷 자체는 재활용입니다 다시 사용하고, 요청 된 정보로 가득 할 준비가, 해결하고, 다시 그 길에 보냈다. 다시 과거 방화벽, 라우터, 인터넷에 통해 있습니다. 위로 기업 방화벽을 통해 귀하의 인터페이스로, 귀하 께서 요청하신 정보를 사용하여 웹 브라우저를 제공 할 준비가. 즉,이 영화입니다. 그들의 노력에 만족하고 더 나은 세계를 신뢰, 우리의 믿음직한 데이터 패킷 또 다른 하루의 일몰에 살았었 사라져야 완벽하게는 잘 자신의 주인을 제공 한 알고. 자, 이제 행복하지? [Malan 좋아, 이제 그만. 우리는 다음 주에 볼 수 있습니다. [CS50.TV]