[그림으로 배우는 HTTP & Network Basic] 2장 간단한 프로토콜 HTTP
[그림으로 배우는 HTTP & Network Basic] 2장 간단한 프로토콜 HTTP

[그림으로 배우는 HTTP & Network Basic] 2장 간단한 프로토콜 HTTP

Tags
우에노 센
Network
HTTP
Published
June 2, 2023
Author
lkdcode

간단한 프로토콜 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 라는 헤더 필드에 의해 쿠키를 클라이언트에 보존하게 된다. 쿠키를 가지고 있는 상태의 리퀘스트를 통해 서버는 어느 클라이언트인지 알 수 있다.