누군가 브라우저에서 URL을 입력 한 시점부터 브라우저에서 페이지를 볼 때까지의 모든 일이 뒤에서 어떻게되는지 말해 줄 수 있습니까? 프로세스에 대한 자세한 설명은 큰 도움이 될 것입니다.
누군가 브라우저에서 URL을 입력 한 시점부터 브라우저에서 페이지를 볼 때까지의 모든 일이 뒤에서 어떻게되는지 말해 줄 수 있습니까? 프로세스에 대한 자세한 설명은 큰 도움이 될 것입니다.
답변:
주의 : 이는 가능한 가장 간단한 HTTP 요청 (HTTPS 없음, HTTP2 없음, 추가 없음), 가장 간단한 DNS, 프록시 없음, 단일 스택 IPv4, 하나의 HTTP 요청, 간단한 HTTP 서버를 가정 할 때 매우 거칠고 지나치게 단순화 된 스케치입니다. 다른 쪽 끝이며 어떤 단계에서도 문제가 없습니다. 이것은 대부분의 현대적인 의도와 목적을 위해 비현실적인 시나리오입니다. 이들 모두는 실제 사용에서 훨씬 더 복잡하며, 기술 스택은 작성된 이후로 훨씬 더 복잡해졌습니다. 이를 염두에두고 다음 타임 라인은 여전히 유효합니다.
다시 말하지만, 이러한 각 요점에 대한 논의는 수많은 페이지를 채웠습니다. 명확성을 위해 요약 된 것으로 만 사용하십시오. 또한 이와 병행하여 발생하는 다른 많은 것들 (입력 된 주소 처리, 추론 적 프리 페칭, 페이지를 브라우저 기록에 추가, 사용자에게 진행 상황 표시, 플러그인 및 확장 프로그램 알림, 다운로드 중 페이지 렌더링, 파이프 라이닝, 연결 추적) 연결 유지, 쿠키 관리, 악성 콘텐츠 확인 등)-전체 작업은 HTTPS (인증서 및 암호 및 고정, 오 마이!)를 사용하면 훨씬 더 복잡해집니다.
먼저 컴퓨터가 대상 호스트를 찾습니다. 로컬 DNS 캐시에 있으면 해당 정보를 사용합니다. 그렇지 않으면 IP 주소를 찾을 때까지 DNS 쿼리가 수행됩니다.
그런 다음 브라우저는 대상 호스트에 대한 TCP 연결을 열고 HTTP 1.1에 따라 요청을 보냅니다 (또는 HTTP 1.0을 사용할 수 있지만 일반 브라우저는 더 이상 수행하지 않습니다).
서버는 필요한 리소스를 찾고 (있는 경우) HTTP 프로토콜을 사용하여 응답하고 클라이언트 (= 브라우저)에게 데이터를 보냅니다.
그런 다음 브라우저는 HTML 파서를 사용하여 나중에 화면에 표시되는 문서 구조를 다시 만듭니다. 그림, css 파일, javascript 파일과 같은 외부 자원에 대한 참조를 찾으면 HTML 문서와 동일한 방식으로 전달됩니다.
HTTP 사양을 찾아보십시오. 또는 시작하려면 http://www.jmarshall.com/easy/http/