주소창에 URL을 입력하면 어떤일이 생길까??
주소창에 URL을 입력하면 어떤일이 생길까요??
안녕하세요! 오늘은 우리가 쉽게 접하는 URL 주소 창에대해 자세하게 알아보는 시간을 갖도록 하겠습니다.
사용자가 웹 브라우저의 주소창에 URL을 입력하면 웹 페이지를 로드하기 위해 브라우저 내부적으로 다양한 단계의 작업이 수행됩니다. 이 과정을 크게 8단계로 나눠서 자세하게 설명해 보겠습니다
1. URL 파싱 및 네비게이션 시작
- 사용자가 주소창에 URL을 입력하거나 링크를 클릭하는 등으로 네비게이션을 시작합니다.
- 브라우저는 URL을 파싱하여 프로토콜(예: http, https), 호스트명(예: example.com), 경로(예: /index.html) 및 쿼리 스트링 등을 추출합니다.
URL 에시
1
URL 예시: https://www.example.com/index.html?q=test#section1
위 URL을 파싱하면 다음과 같은 요소로 나눠집니다.
속성 값 | 설명 |
---|---|
프로토콜 | https |
호스트명 | www.example.com |
경로 | /index.html |
쿼리 스트링 | q=test |
프래그먼트 | section1 |
2. DNS 조회
- 호스트명을 IP 주소로 변환하기 위해 브라우저는 DNS(Domain Name System) 조회를 시작합니다.
- 이 과정은 브라우저의 DNS 캐시 또는 로컬 운영 체제의 캐시에서 먼저 시도되며, 캐시에 없을 경우 네트워크를 통해 DNS 서버에 요청합니다.
3. TCP 연결
- IP 주소를 얻은 후 브라우저는 웹 서버와 TCP 연결을 설정합니다.
- 이는 3-웨이 핸드셰이크 과정을 거치며, 일반적으로 서버의 80번(HTTP) 또는 443번(HTTPS) 포트로 연결합니다.
4. TLS 핸드셰이크 (HTTPS만 해당)
- URL이 https 프로토콜일 경우, 브라우저는 서버와 TLS 핸드셰이크 과정을 통해 암호화된 연결을 설정합니다.
- 이 과정에서는 서버 인증서의 유효성을 검증하고, 세션 키를 생성하며, 이후의 통신은 암호화된 상태로 진행됩니다.
5. HTTP 요청 및 응답
- 브라우저는 서버에 HTTP 요청을 보냅니다.
- 요청 라인: GET /index.html HTTP/1.1
- 헤더: 사용자 에이전트, 쿠키 등
- 바디: (POST 등의 요청에서)
1
2
3
4
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9
다음시간에 계속…
This post is licensed under CC BY 4.0 by the author.