본문 바로가기

Develop Log/개발 관련 잡학다식

Http 버전별 특징

반응형

HTTP (HyperText Transfer Protocol)

  • 클라이언트와 서버 사이에 이루어지는 요청과 응답을 주고받을 수 있는 프로토콜
  • 데이터를 주고받기 위한 각각의 데이터 요청이 서로 독립적으로 관리
  • 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되며 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 장점

HTTP Method

GET

  • 데이터를 읽거나 검색할 때 사용되는 메소드
  • 데이터를 수정할 때에는 사용하지 않는다
  • 요청이 성공적으로 이루어진다면 응답코드(200)와 함께 XML이나 JSON로 이루어진 결과를 반환
  • 같은 요청은 항상 같은 응답을 받을 수 있다
  • GET과 동일한 역할을 하지만 서버에서 Body를 반환하지 않음
  • 오직 서버 내에서의 확인만을 원할 때 사용

PUT

  • 요청 페이로드를 사용하여 새로운 리소스를 생성하거나, 대상 리소스를 나타내는 데이터를 대체
  • Client 요청의 Body를 확인
  • 동일한 요청은 항상 같은 결과가 생성

POST

  • 서버에 데이터를 전송하기 위해 사용(form 데이터와 같은 부분에 많이 사용)
  • 동일한 요청을 하더라도 항상 같은 결과가 생성되지 않는다

PATCH

  • 리소스를 부분적으로 변경한다
  • PUT의 경우 보내지지 않은 정보에 대해서는 null값으로 대응하지만 PATCH의 경우 기존 데이터를 유지하여 대응함

DELETE

  • 특정 리소스를 삭제할 때 사용되는 메소드
  • 데이터를 추가하거나 수정하는것이 아니기 때문에 요청시 body값과 Content-Type이 비워져있음
  • 응답 결과만 반환한다

버전별 특징

HTTP/0.9

  • 요청은 단일 라인으로만 구성되며 GET을 이용한 통신만이 가능
  • HTML문서만 전송이 가능했으며 다른 유형의 문서는 전송될 수 없었다

HTTP/1.0

  • 상태코드가 응답값 시작 부분에 포함되어 요청에 대한 성공과 실패를 바로 확인할 수 있게 되었다
  • 헤더의 Content-Type으로 HTML 이회의 다른 문서들도 전송이 가능해졌다
  • POST, HEAD 메소드가 추가됨

HTTP/1.1

  • 첫번째 표준 버전
  • PUT, DELETE 메소드가 추가
  • TCP 세션을 통해 여러개의 컨텐츠 요청이 가능하게 되었다
  • 하나의 요청과 하나의 응답을 처리하기 때문에 이후의 요청이 수행이 완료됐더라도 blocking상태가 지속되는 문제점이 발생(HOL Blocking)
  • 연속된 요청간에 중복된 헤더들이 발생

HTTP/2.0

  • 여러 요청과 응답을 병렬로 처리가 가능해짐
  • HTTP body가 이진데이터로 전송되어 보안성이 향상
  • 대부분의 브라우저에서는 https에서만 http/2 규격을 지원하기로 결정되었다

HTTP/3.0

  • 단일 연결로 여러 신호를 전송하는 멀티플렉싱을 지원하여 HOL Bloking이 없다
  • 서버간의 왕복 횟수가 적어 속도가 다른버전에 비해 빠르다

참고

 
반응형

'Develop Log > 개발 관련 잡학다식' 카테고리의 다른 글

HTTP Method  (0) 2023.07.21
OSI(Open Systems Interconnection) 7계층  (0) 2023.07.18
ORM  (0) 2023.07.17
Tomcat, Nginx  (0) 2023.07.16
첫번째 이야기 WAS, Web Server  (0) 2023.07.16