참고
https://aws.amazon.com/ko/blogs/korea/what-happens-when-you-type-a-url-into-your-browser/
1. 사용자가 웹 브라우저에 URL입력하고 Enter
https://velog.io/@maxminos
와 같은 도메인 네임을 입력
- 도메인 네임(Domain Name): IP주소는 12자리의 숫자로 되어있기 때문에 사람이 외우기 힘들어서 이를 문자로 변환한 주소
- 프로토콜, 도메인, 포트, Path Parameter, Query string 등 확인
1) 통신규약(Protocol)
https://
: 통신 프로토콜 (Hypertext Transfer Protocol Secure)
- 이 스키마는 브라우저에 전송 계층 보안(TLS)을 사용하여 서버에 연결하도록 지시함
- 전송 계층 보안(TLS) :인터넷을 통한 통신을 보호하는 암호화 프로토콜
- HTTPS를 사용하면 암호나 신용 카드 정보와 같이 브라우저와 서버 간에 교환되는 데이터가 암호화됨
2) 도메인(Domain)
velog.io/@maxminos
: 웹 사이트의 도메인 이름
- 특정 서버의 IP주소를 가리킴
3) 경로(Path)
4) 리소스(Resource)
2. 웹 브라우저가 URL 해석
- 브라우저가 DNS를 활용하여 도메인명의 IP주소 조회
- DNS(Domain Name System) : 도메인 네임과 함께 해당하는 IP 주소값을 한 쌍으로 저장하고 있는 데이터베이스
- DNS는 복잡하고 빨라야 하기 때문에 DNS 데이터는 웹 브라우저 사이의 서로 다른 계층과 인터넷의 다양한 위치에 임시로 저장 -> 이를
캐시(Cache)
라고 부름
- 웹 브라우저가 확인하는 캐시 종류 및 순서
- 브라우저 고유 캐시
- 운영체제 캐시
- 라우터의 로컬 네트워크 캐시
- 회사 네트워크 또는 인터넷 서비스 제공업체(ISP)의 DNS 서버 캐시
3. ARP로 MAC 주소 확인
- 실질적인 통신을 하기 위해서는 논리 주소인 IP주소를 물리 주소인 MAC 주소로 변환해야 함. 이를 위해 해당 네트워크 내에서 ARP(Address Resolution Protocol)를 브로드 캐스팅합니다. 해당 IP주소를 가지고 있는 노드는 자신의 MAC 주소를 응답합
4. 웹 브라우저가 서버와의 TCP 연결 시작
- 인터넷에 연결된 웹 브라우저 요청
패킷
은 일반적으로 TCP/IP라고 하는 전송 제어 프로토콜을 사용하여 라우터 장비, 인터넷 서비스 제공회사 교환기를 통해 이동되어, 통신 회사간 경로인 라우팅 테이블을 따라서 연결할 IP 주소가 있는 웹 서버를 찾습니다.
- 웹 브라우저가 인터넷에서 서버를 찾으면 웹 서버와 TCP 연결을 설정하고, HTTP를 통해 평문 통신을 시작
- HTTPS를 사용하는 경우 주고 받는 데이터의 암호화를 위한 TLS (Transport Layer Security) 핸드셰이크라는 추가 과정을 수행 = 암호화를 할 상호 대상을 확인하는 것
5. 서버에 실제 요청(Request) 전송
- 웹 브라우저가 서버에 연결되면 HTTP(s) 프로토콜에 대한 통신 규칙을 따라 페이지의 콘텐츠를 불러오기 위해 서버에 HTTP 요청을 전송함
- 요청 라인, 헤더(메타데이터), 본문
6. 웹 서버가 요청을 분석하여 응답(Response)을 다시 전송
7. 웹 브라우저가 응답받은 콘텐츠를 렌더링