1. URL (Uniform Resource Identifier)
URI = URL + URN
- Unifrom : 리소스를 식별하는 통일된 방식
- Resouce : URI로 식별할 수 있는 모든 것(제한X)
- Identifier : 다른 항목과 구분하는데 필요한 정보
- URL (Uniform Resource Locator) : 리소스가 있는 위치 지정
- URN (Uniform Resource Name) : 리소스에 이름 부여
- 위치는 변할 수 있지만, 이름은 변하지 않는다.
- 앞으로 URI를 URL과 같은 의미로 생각하도록 한다.
- URL 분석
scheme://[userinfo@]host[:port][/path][?query][#fragment]
- scheme: 프토토콜
- host : 호스트 명
- port: 포트번호
- path: 경로
- query: 쿼리 파라미터
1) scheme
-> 주로 프로토콜을 사용. 이때 프로토콜이란 어떤 방식으로 자원에 접근할 것인가에 관한 클라이언트 서버간 약속이다.
- http : 80 포트
- https : 443 포트 주로 사용(생략O)
- https는 http에 보안을 추가한 것으로 요즘 대부분의 웹사이트는 https로 동작한다
2) userinfo
-> URL에 사용자 정보를 포함해서 인증(거의 사용 x)
3) host (호스트명)
-> 도메인명/ IP 주소를 직접 사용한다.
4) PORT
-> 접속 포트는 일반적으로 생략한다. (http: 80, https: 443)
5) path
-> 리소스 경로로서 계층적 구조를 이루고 있다.
ex) /home/file1.jpg , /members
6) query
-> 쿼리 파라미터, 쿼리 스트링으로 불린다. key=value 형태이다.
? 로 시작, &로 추가 가능하다(?keyA=value!&keyB=valueB)
7) fragment
-> html 내부 북마크 등에 사용한다. 단 서버에 전송하는 정보는 아니다.
2 . 웹 브라우저 요청 흐름
1) 웹 브라우저에 URL 입력
2) IP, PORT 정보로 HTTP 요청 메시지 생성
IP는 DNS를 조회해서 얻고, PORT는 생략되었을 경우 프로토콜(http)을 보고 유추한다.
3) HTTP 요청 메시지 전송
위와 같은 단계를 거쳐서 HTTP 메시지를 TCP/IP 계층에 전달하여 서버로 보낸다.
4) 패킷 생성
헤더 부분(출발지 IP, PORT, 목적지 IP, PORT 정보 등)과 데이터 부분(HTTP 메시지)을 합쳐 TCP/IP 패킷을 생성한다.
5) 요청 패킷 전달 및 도착
TCP/IP 패킷이 웹 브라우저(클라이언트)에서 수많은 중간 노드를 거쳐 웹 서버에 패킷을 전달한다.
6) 서버에서 HTTP 응답 메시지 생성
웹 서버(서버)에 도착한 패킷의 헤더 부분은 버리고, HTPP 메시지(데이터 부분)를 서버가 해석하여 HTTP 응답 메시지를 만든다.
7) 서버에서 응답 패킷 전달
헤더 부분에 출발지 IP, PORT, 목적지, IP, PORT 정보 등을 담는다. 그 후 데이터 부분에 HTTP 응답 메시지를 담아 만든 응답 패킷을 웹 브라우저(클라이언트)에 전달한다.
8) 웹 브라우저 HTML 렌더링
웹 브라우저(클라이언트)가 웹 서버로부터 받은 응답 패킷에서 헤더 부분을 버리고 HTTP 응답 메시지의 데이터(HTML)을 렌더링하여 화면에 뿌려준다.
'Spring > HTTP 웹 기본 지식' 카테고리의 다른 글
인프런 HTTP 강의 정리 #6 (1) | 2023.12.23 |
---|---|
인프런 HTTP 강의 정리 #5 (1) | 2023.12.23 |
인프런 HTTP 강의 정리 #4 (0) | 2023.12.23 |
인프런 HTTP 강의 정리 #3 (1) | 2023.12.22 |
인프런 HTTP 강의 정리 #1 (0) | 2023.12.22 |