>  기사  >  웹 프론트엔드  >  URL 입력부터 페이지 로드 완료까지의 과정은 어떻게 되나요?

URL 입력부터 페이지 로드 완료까지의 과정은 어떻게 되나요?

一个新手
一个新手원래의
2017-10-06 10:40:271179검색

URL 입력부터 페이지 로딩 완료까지의 과정

프로세스 설명

  1. 브라우저는 도메인 이름에 해당하는 IP 주소를 찾습니다.

  2. 브라우저는 이를 기반으로 서버와 소켓 연결을 설정합니다. IP 주소;

  3. 브라우저와 서버 통신: 브라우저가 요청하고 서버가 요청을 처리합니다.

  4. 브라우저와 서버의 연결이 끊어집니다.

도메인 이름을 기준으로 IP 주소 찾기

개념 분석
  1. IP 주소: IP 프로토콜에 의해 인터넷의 모든 네트워크와 모든 호스트에 할당되는 논리 주소입니다. IP 주소는 집 번호와 같습니다. 호스트의 위치는 IP 주소로 확인할 수 있습니다. 서버는 본질적으로 호스트입니다. 서버에 액세스하려면 먼저 해당 IP 주소를 알아야 합니다.

  2. 도메인 이름(HOST): IP 주소는 중간에 점으로 연결된 4개의 숫자로 구성됩니다. 기억하기 어렵고 입력 오류가 발생하기 쉬우므로 순전히 숫자로 된 IP 주소 대신 친숙한 문자와 숫자의 조합을 사용하세요. 예를 들어 www.baidu.com(Baidu 도메인 이름)만 기억하겠습니다. 220.181.112.244(Baidu의 IP 주소 중 하나) 대신 ) ​​

  3. DNS: 각 도메인 이름은 동일한 서비스를 제공하는 하나 이상의 서버의 IP 주소에 해당합니다. 서버 IP 주소를 알아야만 연결할 수 있습니다. 설정되므로 도메인 이름은 DNS를 통해 IP 주소로 확인되어야 합니다.

위의 개념을 알고 나면, 서버의 집 번호를 얻으려면 먼저 도메인 이름을 IP 주소로 변환해야 한다는 것을 알고 계실 것입니다. 변환 프로세스는 다음과 같습니다(예를 들어 www.baidu.com의 IP 주소를 쿼리하는 경우 이전 단계에서 성공적으로 쿼리하지 못한 경우 2, 3, 4단계가 모두 수행됩니다).

검색 프로세스
  1. 브라우저는 자체 DNS 캐시를 검색합니다(도메인 이름과 IP 주소 간의 대응 테이블 유지)

  2. 운영 체제에서 DNS 캐시 검색(도메인 이름과 IP 주소 간의 대응 테이블 유지) 운영 체제의 호스트 파일을 검색합니다(Windows 환경에서는 도메인 이름과 IP 주소 간의 대응 테이블을 유지합니다).

  3. 운영 체제는 인터넷에 액세스하면 도메인 이름을 LDNS(로컬 영역 이름 서버)로 보냅니다. 학교에서는 LDNS 서버가 학교에 있습니다. 합격하면 Telecom이 인터넷에 연결되어 있으면 LDNS 서버는 로컬 Telecom에 있습니다.) LDNS는 자체 DNS 캐시를 쿼리합니다. (일반적으로 검색 성공률은 약 80%입니다.) 검색이 성공하면 결과가 반환됩니다. 실패하면 반복적인 DNS 확인 요청이 시작됩니다.

  4. LDNS는 RootNameServer(루트 도메인 이름 서버)에 대한 요청을 시작합니다. 각 도메인 이름에 대한 정보에는 com, net, org 등 각 도메인의 확인을 담당하는 최상위 도메인 이름 서버의 주소가 저장됩니다. 여기서 루트 이름 서버는 최상위 도메인 이름의 주소를 반환합니다. com 도메인의 수준 도메인 이름 서버
    1. LDNS는 com 도메인의 최상위 도메인 이름 서버에 요청을 시작하고 baidu.com 도메인 이름 서버 주소를 반환합니다.

    2. LDNS는 baidu.com 도메인 이름 서버 요청을 시작하고 www.baidu.com의 IP 주소를 가져옵니다.

    3. LDNS는 IP 주소를 운영 체제에 반환하고 IP 주소 자체를 캐시합니다. IP 주소를 브라우저에 반환합니다. 브라우저는 IP 주소도 캐시합니다.
  5. 이 시점에서 브라우저는 도메인 이름에 해당하는 IP 주소를 얻었습니다.

  6. 추가 설명

  7. 도메인 이름과 URL은 두 가지 개념입니다. 도메인 이름은 인터넷에서 서버 위치를 결정하는 데 사용되는 서버 또는 서버 그룹의 이름입니다. , 특정 파일의 특정 위치를 결정하는 데 사용됩니다. 예를 들어 zhihu.com은 Zhihu의 도메인 이름이며 이 도메인 이름을 기반으로 Zhihu.com/people/CompileYouth를 찾을 수 있습니다. 이 URL을 기반으로 내 Zhihu 홈페이지를 찾으세요.

IP 주소와 도메인 이름은 일대일 대응이 아닙니다. 동일한 서비스를 제공하는 여러 서버 IP가 동일한 도메인 이름으로 설정될 수 있습니다. 도메인 이름은 동시에 하나의 IP 주소만 확인할 수 있습니다. 여러 도메인 이름을 지정하면 개수가 제한되지 않습니다.
  1. 연결 설정: 3방향 핸드셰이크

  2. 알고 나면; 서버의 IP 주소를 입력한 후 서버와의 연결 설정을 시작합니다.
  3. 일반 용어로 통신 연결을 설정하려면 다음 세 가지 프로세스가 필요합니다.

호스트가 서버에 연결 설정 요청을 보냅니다(안녕하세요, 당신에 대해 알고 싶습니다). 서버는 요청을 받은 후 요청을 보냅니다. 연결 동의 신호(알겠습니다. 만나서 반가워요)

연결 동의 신호를 받은 후 호스트는 다시 서버에 확인 신호를 보냈습니다. 만나러 갑니다) 그 이후로 호스트와 서버는 연결이 이루어졌습니다.

  1. 추가 설명: TCP 프로토콜: 3방향 핸드셰이크 프로세스는 정보 전송의 신뢰성을 보장할 수 있는 TCP 프로토콜을 사용합니다. 3방향 핸드셰이크 프로세스 중에 한 당사자가 확인 신호를 받을 수 없는 경우 프로토콜은 신호를 다시 보내야 합니다.

    데이터 전송

    서버가 호스트와 연결을 설정한 후 호스트는 서버와 통신합니다. 웹 페이지 요청은 단방향 요청 프로세스입니다. 즉, 호스트가 서버에 데이터를 요청하면 서버는 해당 데이터를 반환합니다.

    1. 브라우저는 URL 콘텐츠를 기반으로 HTTP 요청을 생성합니다. 요청에는 요청된 파일의 위치, 파일 요청 방법 등이 포함됩니다.

    2. 서버가 요청을 받은 후 결정합니다. HTTP 요청의 콘텐츠를 기반으로 응답을 얻는 방법

    3. 서버는 얻은 HTML 파일을 브라우저에 보냅니다.

    4. 브라우저가 완전히 수신하기 전에 웹 페이지 렌더링 및 표시를 시작합니다.

    5. HTML에서 코드를 실행할 때 필요에 따라 브라우저는 계속해서 이미지, CSS, JavsScript 및 기타 파일을 요청합니다. 프로세스는 HTML을 요청하는 것과 동일합니다.

    Disconnect: wave four; 회

    1. 호스트가 서버에 연결 해제 요청을 보냅니다. (이른 시간이 아니니 가야 합니다.)

    2. 요청을 받은 후 서버는 요청 수신을 확인하는 신호를 보냅니다.

    3. 서버는 호스트에게 연결 끊김 알림을 보냅니다(이제 나도 갈 시간입니다).

    4. 호스트는 연결 끊김 알림을 받은 후 연결을 끊고 확인 신호를 피드백하고(글쎄요) 서버가 연결을 끊습니다.

    추가 설명

    서버가 연결 해제 요청을 받는 이유 즉시 연결 해제에 동의하지 마세요: 서버가 연결 해제 요청을 받았을 때 아직 전송되지 않은 데이터가 있을 수 있으므로 서버는 먼저 확인 신호를 보내고 연결 해제에 동의하기 전에 모든 데이터가 전송될 때까지 기다립니다.

    네 번째 핸드셰이크 이후 호스트는 확인 신호를 보낸 후 즉시 연결을 끊지 않고 2번의 메시지 전송 주기를 기다렸습니다. 그 이유는 네 번째 핸드셰이크의 확인 정보가 손실되면 서버가 세 번째 메시지를 다시 보내기 때문입니다. Three-Way Handshake의 연결 끊김 신호와 서버가 패킷 손실을 감지하고 연결 끊김을 다시 호스트에 전송하는 시간은 정확히 2개의 메시지 전송 주기입니다.

    이 글은 URL 입력부터 페이지 로딩 완료까지의 전체 과정을 개략적으로 설명하고 있습니다. 개인적으로 설명이 꽤 좋다고 느껴서 제 블로그에 올려서 모두에게 공유하고 배우고 싶습니다.

    원본 주소 : URL 입력부터 페이지 로딩 완료까지의 과정

위 내용은 URL 입력부터 페이지 로드 완료까지의 과정은 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.