고급자바

김강산·2022년 8월 19일
0

고급JAVA

목록 보기
12/15

Http Protocol

Http 프로토콜에 대하여

HTTP(HyperText Transfer Protocol)는 WWW 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로HTML문서를 주고받는 데에 쓰인다. TCP와 UDP를 사용하며, 80번 포트를 사용한다.
1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었다.
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다.

HTTP 프로토콜의 특징

(1) 비연결성(Connectionless) 프로토콜이다
비연결성은 클라이언트와 서버가 연결을 맺은 후, 클라이언트 요청에 대해 서버가 응답을 하고나면, 맺고 있었던 연결을 종료시키는 것을 말한다.
잦은 연결/해제에 따른 오버헤드를 줄이고자 HTTP1.1에서는 KeepAlive 속성을 사용할 수
있다.
(2) 상태가 없는(stateless)프로토콜이다.
비연결성으로 인해 서버는 클라이언트를 식별할 수가 없는 상황을 말한다.
(3) 일반적으로 TCP/IP 통신 위에서 동작 하면 기본포트는 80번이다.

HTTP 프로토콜을 이용한 통신 과정

  1. 접속(Connect)
  2. 요청(Request)
  3. 응답(Response)
  4. 닫기(Close)

HTTP 요청(응답) 메시지 구조

  1. Request Line
    예) GET/restapi/v1.0 HTTP/1.1
  2. Status Line
    예) HTTP/1.1 200 OK
  3. Header : 헤더정보를 의미함.
  4. Empty Line : 공백(빈줄)을 의미하고, Header와 Body를 분리 해주는 역할을 함.
  5. Body : 보내거나 받고자 하는 실제 데이터를 의미함.
    • 메서드가 GET 등의 경우에는 요청시 Body부분 생략 가능함.

HTTP 요청 메서드

  • GET : 이미 존재하는 자원(리소스)에 대해 요청함.
  • POST : 새로운 자원(리소스)을 생성을 요청함.
  • PUT : 이미 존재하는 자원(리소스)에 대한 변경을 요청함.
  • DELETE : 이미 존재하는 자원(리소스)에 대해 삭제를 요청함.
  • HEAD : 이미 존재하는 자원(리소스)에 대해 헤더정보만을 요청함.
  • OPTIONS : 서버 옵션들을 확인하기 위한 요청. CORS에서 사용함.
  • TRACE : 클라이언트가 보낸 요청을 그대로 반환함.
  • CONNECT : 프록시 터널링을 위해 예약된 메서드.

0개의 댓글