간단한 프로토콜 HTTP
- HTTP 는 클라이언트와 서버 간에 통신을 한다.
- request 와 response를 교환하며 성립한다.
- 서버측에서는 클라이언트의 요청없이 응답하는 경우는 없다.
HTTP 는 상태를 유지하지 않는 프로토콜
이전에 보냈던 리퀘스트나 이미 되돌려준 리스폰스에 대해서는 전혀 기억하지 않는다.
많은 데이터를 매우 빠르고 확실하게 처리할 수 있다.
로그인같은 상태를 유지하기 위해 쿠키가 도입됐다.
리퀘스트 URI로 리소스를 식별
모든 URI를 리퀘스트 URI 를 포함한다.
Host 헤더 필드에 네트워크 로케이션을 포함한다.
서버에 임무를 부여하는 HTTP 메소드
- GET : 리소스 획득
- POST : 엔티티 전송
- PUT : 파일 전송
- PUT 자체에는 인증 기능이 없어 누구든지 파일을 업로드 할 수 있다 (보안 문제)
- HEAD : 메시지 헤더 취득
- GET 과 같은 기능이지만 메시지 바디는 돌려주지 않는다. URI 유효성과 리소스 갱신 시간을 확인하는 목적으로 사용
- DELETE : 파일 삭제
- PUT 메소드와 반대로 동작한다. 인증기능이 없어 사용하지 않음.
- 인증 기능과 짝을 이루거나, REST 를 사용하는 경우 사용 함.
- OPTIONS : 제공하고 있는 메소드의 문의
- TRACE : 경로 조사
- CONNECT : 프록시에 터널링 요구
지속 연결로 접속량을 절약
어느 한 쪽이 명시적으로 연결을 종료하지 않는 이상 TCP 연결을 계속 유지한다.
반복되는 오버헤드를 줄여주기 때문에 서버에 대한 부하가 경감된다.
파이프 라인화
지속 연결은 여러 리퀘스트를 보낼 수 있도록 파이프라인화를 가능하게 한다.
리스폰스를 기다리지 않고 추가 리퀘스트를 보낼 수 있다.
쿠키를 사용한 상태 관리
HTTP 는 스테이트리스 프로토콜이기 때문에 쿠키로 관리하는 기술이 도입됨.
쿠키는 서버에서 리스폰스로 보내진 Set-Cookie 라는 헤더 필드에 의해 쿠키를 클라이언트에 보존하게 된다.
쿠키를 가지고 있는 상태의 리퀘스트를 통해 서버는 어느 클라이언트인지 알 수 있다.
![[그림으로 배우는 HTTP & Network Basic] 2장 간단한 프로토콜 HTTP](/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fattachment%253Ae5ddd3c6-7b78-4c02-9838-b73a44d161ee%253A%25E1%2584%2580%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25B7%25E1%2584%258B%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25A9_%25E1%2584%2587%25E1%2585%25A2%25E1%2584%258B%25E1%2585%25AE%25E1%2584%2582%25E1%2585%25B3%25E1%2586%25AB_HTTP.jpeg%3Ftable%3Dblock%26id%3D25ea12d0-8f8e-807a-a06d-ca763a8a686f%26cache%3Dv2&w=1920&q=75)