반응형
HTTP (HyperText Transfer Protocol)
- 클라이언트와 서버 사이에 이루어지는 요청과 응답을 주고받을 수 있는 프로토콜
- 데이터를 주고받기 위한 각각의 데이터 요청이 서로 독립적으로 관리
- 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되며 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 장점
HTTP Method
GET
- 데이터를 읽거나 검색할 때 사용되는 메소드
- 데이터를 수정할 때에는 사용하지 않는다
- 요청이 성공적으로 이루어진다면 응답코드(200)와 함께 XML이나 JSON로 이루어진 결과를 반환
- 같은 요청은 항상 같은 응답을 받을 수 있다
HEADER
- 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 |