브라우저에 www.cnn.com을 입력하면 화면 뒤에서 어떤 일이 발생하며 화면에 정보가 어떻게 표시됩니까?
기술적 인 설명은 대단히 감사하겠습니다.
브라우저에 www.cnn.com을 입력하면 화면 뒤에서 어떤 일이 발생하며 화면에 정보가 어떻게 표시됩니까?
기술적 인 설명은 대단히 감사하겠습니다.
답변:
브라우저 : "좋아요.이 주소를 요청하는 사용자가 있습니다 : www.cnn.com. 슬래시 나 다른 것이 없기 때문에 이것이 메인 페이지의 직접 요청입니다. 프로토콜이나 포트도 정의되어 있지 않습니다. 그래서 HTTP로 가정하고 포트 80으로 갈 것입니다 ... 우선, 우선 DNS. 친구, 일어나세요!이 www.cnn.com은 어디에 숨어 있습니까? "
DNS : "오른쪽 ... 잠깐만 ISP 서버에 물어 볼게요. 157.166.226.25처럼 보입니다."
브라우저 : "Ok. Internet Protocol Suite, your turn! 157.166.226.25로 전화주십시오.이 HTTP 헤더를 보내십시오. 기본 페이지의 기본 구조와 내용을 요청하여 가져올 내용을 알고 있습니다. 당신이 이것에 신경 쓰지 않을 것 같아요. "
TCP / IP : " 내 차례 는 무엇을 의미 합니까? DNS를 위해 저를 뒤로 물러서지 않았던 것처럼, 하나님, 여기에 약간의 감사를 얻는 데 필요한 것은 ..."
브라우저 : ...
TCP / IP : "예, 예. 연결 중 ... 게이트웨이에게 전달하도록 요청하겠습니다. 모두 쉽지는 않습니다. 예쁜 요청을 여러 부분으로 나누어야합니다. 그래서 그것은 끝까지 도달하고 내가 얻는 수천 가지의 모든 포장에서 돌려 보낸 물건을 조립합니다 ... 아, 맞아요.
한편, CNN 본사에서는 마침내 웹 서버의 문에 메시지가 표시됩니다.
CNN 웹 서버 : "Nzhôô! 고객! 그는 뉴스를 원합니다! 프론트 페이지! 어떻습니까?"
CNN 서버 측 스크립트 엔진 : "맞아요! 프론트 페이지 맞죠?"
CNN 데이터베이스 서버 : "예! 저를 위해 일하십시오! 어떤 컨텐츠가 필요하십니까?"
CNN 서버 측 스크립트 엔진 : "... 음, 죄송합니다 DB, 여기 캐시에 첫 페이지의 사본이 있습니다. 아무 것도 컴파일 할 필요가 없습니다. 그러나이 사용자 ID를 가져 와서 저장합니다. "고객에게도 알려주므로 나중에 얘기 할 사람을 알 수 있습니다."
CNN 데이터베이스 서버 : "예!"
사용자 컴퓨터로 돌아 가기 ...
TCP / IP : "Ooookay, 답장이 온다. 오 이런, 왜 이것이 큰 것이 될 것 같은 느낌이 들지?"
브라우저 : "아, 와우 .. 여기에는 모든 종류의 자바 스크립트 코드가 있습니다 ... 많은 이미지와 몇 가지 형태 ... 렌더하는 데 시간이 좀 걸릴 것입니다. 더 잘 이해하십시오. IP 시스템, HTTP를 통해 i.cdn.turner.com에서 몇 가지 스타일 시트가 필요하고 /cnn/.element/css/2.0/common.css 파일을 요청하는 것을 보자. 그런 다음 i.cdn.turner.com에서 이러한 스크립트를 얻으십시오. 지금까지 6 개를 세고 있습니다. "
TCP / IP : "사진을 볼 수 있습니다. 서버 주소와 그 모든 것을 알려주십시오. HTTP 요청 내에서 해당 파일을 래핑하면 처리하고 싶지 않습니다."
DNS : "i.cdn.turner.com을 확인하는 중입니다 ... 사소한 것은 실제로는 cdn.cnn.com.c.footprint.net입니다. IP는 4.23.41.126입니다."
브라우저 : "물론, 잠깐만 기다려주세요. 처리하는 데 몇 nsec이 걸립니다.이 스크립트를 모두 이해하려고합니다 ..."
TCP / IP : "여기에 요청한 CSS가 있습니다. 아, 그리고 ... 추가 스크립트도 다시 나타났습니다."
브라우저 : "휴, 더 많은 종류의 비디오 광고가 있습니다!"
TCP / IP : "아, 이거 재미 있겠다 ..."
브라우저 : "모든 종류의 이미지도 있습니다! 그리고이 CSS는 약간 불쾌 해 보입니다 ... 맞습니다. 만약 그 부분이 거기에 있고 맨 위에이 줄이 있다면 ... 지구상에서 더 이상 어떻게 맞을까요? , 나는 그것을 만들기 위해 이것을 조금 늘려야 할 것이다 ... 오, 그러나 다른 CSS 파일은 그 규칙을 무시한다 ... 글쎄,이 파일은 렌더링하기 쉬운 부분이 아닐 것이다.
TCP / IP : "알겠습니다. 잠시만 산만하게하세요. 아직 할 일이 많습니다."
브라우저 : "사용자, 여기 작은 진행 보고서가 있습니다. 죄송합니다.이 작업에는 몇 초 정도 걸릴 수 있습니다.로드하는 데에는 140 가지의 다른 요소가 있으며 지금까지 16 개가 있습니다."
1-2 초 후 ...
TCP / IP : "좋아, 그게 다야. 이봐, 들어 봐 ... 미안 내가 너를 earlier 아 먹었어, 거기 관리하니? 이건 너에게도 큰 부담 인 것 같아."
브라우저 : "휴, 지금은이 모든 웹 사이트들이 있습니다. 그들은 당신을 위해 쉽게 만들지 않을 것입니다. 글쎄, 내가 관리 할 것입니다. 내가 여기있는 것입니다."
TCP / IP : "저는 요즘 우리 모두에게 너무 무거울 것 같아요. 아, DNS를 칭찬하지 마라!"
브라우저 : "사용자 안녕하세요! 웹 사이트가 준비되었습니다. 뉴스를 받아보십시오!"
CERN의 훌륭한 설명-웹의 alma mater : 웹 작동 방식
첫 번째 단계는 DNS (Domain Name Server) 조회입니다. 네트워크 설정에 지정된 (또는 DHCP에서 제공 한) DNS 서버를 사용하여 최상위 도메인 (cnn.com)을 찾은 다음 해당 도메인의 네임 서버에 지정된 하위 도메인 (www.cnn.com)의 IP 주소를 요청합니다.
IP 주소가 있으면 브라우저가 웹 서버와 통신을 시작합니다. 이것은 지정된 프로토콜을 사용하여 수행됩니다 (일반적으로 HTTP 1.1로 설정 됨). '/'에 대한 'GET'요청이 HTML 문서 컨텐츠 및 적절한 헤더 (문서의 컨텐츠 유형, HTML 및 기타 정보를 브라우저에 알리는)로 응답합니다. 그런 다음 브라우저는 문서를 구문 분석하고 페이지에 포함해야하는 URL (예 : 이미지 또는 링크 된 스타일 시트)을 찾아 각 URL에 대해 GET 요청을 수행합니다.
브라우저는 일반적으로 자동으로 '/favicon.ico'에 대한 GET 요청을합니다 (사이트 제목 옆에 작은 CNN 아이콘 표시).
브라우저는 또한 요청 헤더에 gzip 알고리즘을 사용하여 응답 컨텐츠를 압축하도록 지정할 것입니다. 서버에서 지원하는 경우 파일 다운로드가 훨씬 작아집니다. ZIP 파일을 다운로드하여 압축을 풀는 것처럼 보이지만 모두 투명합니다.
페이지를 다시로드하면 브라우저는 해당 페이지가 시스템에 이미 캐시되어 있는지 확인하고, 그렇다면 문서의 헤더에 대해서만 HTTP 요청을 수행하고 수정 된 날짜를 확인합니다. 이 날짜가 캐시 된 사본보다 늦으면 전체 문서 내용을 다시 요청하고 페이지를 새로 고칩니다. 그렇지 않으면 로컬 사본 만 사용합니다.
CNN 측에서는 다른 답변과는 거리가 멀다.
이것은 분명히 기술적 인 설명은 아니지만 훌륭한 Vladaid.com 의 훌륭한 시각 보조 자료로 다음과 같은 도움 이 될 수 있습니다.
Jeff Moser 는 자신의 블로그 ( HTTPS 연결의 첫 몇 밀리 초) 에서 HTTPS 요청에 대한 뛰어난 기술적 분석을 수행했습니다 .
"Sendung mit der Maus"(어린이를위한 기술을 설명하는 매우 인기있는 독일 어린이 TV 쇼)의 멋진 비디오가 있습니다.
Send Sended mit der Maus-인터넷 기능 (인터넷 작동 방법).
불행히도 독일어로만, 텍스트가없는 것은 재미 있습니다. 재미있는 헬멧을 쓴 남자는 IP 패킷을 재생하고 데이터는 종이 카드에 기록됩니다. 클래식 :-).
BTW, 설명은 실제로 상당히 좋습니다.