본문 바로가기
Spring/HTTP 웹 기본 지식

인프런 HTTP 강의 정리 #2

by 예린lynn 2023. 12. 22.
728x90

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 메서드/ path, query string/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)을 렌더링하여 화면에 뿌려준다.

728x90

'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