HTTP 프로토콜의 이해

beanie·2021년 1월 5일
0

WEB 개발의 이해

목록 보기
1/2

HTTP

웹 브라우저와 웹 서버 간에 서로 통신을 하기 위한 규약
불특정 다수를 대상으로 하는 서비스에 적합, 무상태 프로토콜이다.

무상태 프로토콜

HTTP는 서버가 응답 후 클라이언트와의 연결을 바로 끊어버린다.
-> 클라이언트의 이전 상황을 알지 못한다.
이러한 특성을 무상태라고 한다.


요청 헤더의 첫번째 줄에는 요청 메소드, 요청 URL, 프로토콜 버전이 명시되어있다.

GET /servlet/query?a=10&b=90 HTTP/1.1

요청 메소드

  • GET
    정보를 요청하기 위해서 사용 (SELECT)
  • POST
    정보를 밀어넣기 위해서 사용 (INSERT)
  • PUT
    정보를 업데이트 하기 위해서 사용 (UPDATE)
  • DELETE
    정보를 삭제하기 위해서 사용 (DELETE)
  • HEAD
    헤더 정보만 요청, 자원이 존재하는지, 서버에 문제가 없는지를 확인하기 위해서 사용
  • OPTIONS
    웹 서버가 지원하는 메소드의 종류를 요청
  • TRACE
    클라이언트의 요청을 그대로 반환, 서버 상태를 확인하기 위해 사용
  • PATCH
    리소스의 부분을 수정할 때 사용

URL

Uniform Resource Locator

  • 인터넷 상의 자원의 위치
  • 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

HTTP 0.9

  • HTTP의 초기 버전
  • 요청 메소드는 GET이 유일하다
  • HTTP 헤더가 존재하지 않고
  • HTML 파일만 전송 가능하다

HTTP 1.0

  • 버전 정보가 요청 사이내로 전송되기 시작
  • HTTP 헤더 개념이 도입
  • HTML 파일 외에 다른 문서들을 전송하는 기능들이 추가

HTML 1.1 - 표준 프로토콜

  • 커넥션 재사용이 가능해짐
  • 파이프 라이닝을 추가하여 커뮤니케이션 레이턴시를 낮추었다
  • 추가적인 캐시 제어 메커니즘을 도입했다
  • HOST 헤더를 사용해 동일 IP 주소에 다른 도메인을 호스팅하여 서버 코로케이션이 가능해짐

HTTP/2

  • 이진 프로토콜을 사용
    -> 읽을 수도 없고 수작업을 만들어 낼 수도 없지만 새로운 최적화 기술을 구현
  • 병렬 요청이 동일한 커넥션 상에서 가능한 다중화 프로토콜
  • 연속된 요청 사이에 매우 유사한 내용으로 존재하는 헤더를 압축시킨다
  • 사전에 클라이언트 캐시를 필요하게 될 데이터로 채워준다 (서버 푸쉬 메커니즘 사용)
profile
백엔드 개발자가 되고 싶은 나

0개의 댓글