나의 독학은

2장 - 간단한 프로토콜 HTTP 본문

학습/그림으로 배우는 Http & Network Basic

2장 - 간단한 프로토콜 HTTP

안종혁 2023. 8. 31. 17:45
* 이 책은 HTTP 1.1을 기준으로 설명하는데 HTTP 2.0이 2015년에 출시되었다.
HTTP 1.1과 2.0의 차이를 알고 싶다면? 클릭

2.2 HTTP는 요청과 응답을 교환하며 통신 한다.

✅클라이언트가 요청하는 메세지

- 메소드 + URI + 프로토콜 버전 + 요청 헤더 필드 + 엔티티 로 구성

예시) HTTP 서버 상에 있는 "/index.html"라는 리소스가 필요하다는 리퀘스트
GET /index.html HTTP /1.1      ->  메소드(GET) , URI(/index.html) , 프로토콜버전(HTTP /1.1)
Host: www.hackr.ip                   -> 요청 헤더 필드
...
name=ueno&age=37                -> 엔티티

<요청 헤더 필드, 엔티티> 는 후에 나옴.

 

✅서버가 응답하는 메세지

- 프로토콜 버전 + 상태 코드 + 응답 헤더 필드 + 바디 로 구성

예시) 
HTTP/ 1.1 200 OK                                           -> 프로토콜버전(HTTP/ 1.1) , 상태코드(200) , 상태코드설명(OK) 
Date: Tue, 10 Jul 2012 06:50:15 GMT             -> 응답 헤더 필드
...

<html>                                                              -> 바디
...

2.4 URI로 리소스를 식별

✅URI가 있는 덕분에 인터넷 상의 어떤 장소에 있는 리소스도 호출이 가능하다.

2.5 서버에 임무를 부여하는 HTTP 메소드

✅HTTP 메소드를 사용하여 서버에 명령을 보낸다

메소드 이름 두드러진 특징 한계
GET URI에 해당하는 리소스를 요구  
POST 엔티티를 전송  
PUT 파일 전송 보안 상의 문제로 인증 기능과 함께 쓰이거나 REST를 사용할 때 이용
HEAD 메세지 헤더 취득  
DELETE 파일 삭제 보안 상의 문제로 인증 기능과 함께 쓰이거나 REST를 사용할 때 이용
OPTIONS 제공하고 있는 메소드 문의  
CONNECT 프록시에 터널링 요구  

*프록시 : 클라이언트와 서버 중간에 위치하여 캐싱, 보안, 제어 등의 역할을 함

2.7~2.8 HTTP 1.1의 특징

✅지속 연결을 한다.

- 한 쪽이 명시적으로 연결을 종료하지 않는 이상 TCP 연결을 계속 유지한다.

- 지속 연결이 아니라면 연결과 종료가 반복되어 오버헤드가 생기고 이는 서버 부하를 높인다.

 

✅파이프라인이 가능하다.

- HTTP 1.0은 클라이언트가 요청을 보내면 서버에서 응답을 받기 전까지 추가적인 요청을 보내지 못한다.

  HTTP 1.1은 파이프라인화를 가능하게 하여 클라이언트가 서버의 응답을 기다릴 필요 없이 서버에게 추가적인 요청을 계속 보낸다.

 

✅쿠키를 이용하여 상태를 관리한다.

- 요청 및 응답메세지의 헤더 필드에 정보(쿠키)를 추가해서 클라이언트에게 무엇을 전달했는지 서버가 기억하기 위해 쿠키를 추가하는 것이다.

- 쿠키가 없다면 로그인한 페이지에서 다른 페이지로 옮길때 마다 재차 로그인을 해야 한다.

 

 

 

그림으로 배우는 Http & Network Basic

 

출처 : 그림으로 배우는 Http & Network Basic