나의 독학은
2장 - 간단한 프로토콜 HTTP 본문
* 이 책은 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' 카테고리의 다른 글
6장 - HTTP 헤더 (0) | 2023.09.09 |
---|---|
5장 - HTTP와 연계하는 웹 서버 (0) | 2023.09.07 |
4장 - 결과를 전달하는 HTTP 상태 코드 (0) | 2023.09.07 |
3장 - HTTP 정보는 HTTP 메서드에 있다 (0) | 2023.09.05 |
1장 - 웹과 네트워크의 기본 (3) | 2023.08.21 |