HTTP Protocol?
- HTTP(HyperText Transfer Protocol)는 웹에서 문서의 전송을 위해 쓰이는 프로토콜
- 현재는 영상, 사진 등의 대부분의 데이터를 전송 가능하며, 거의 모든 웹 애플리케이션에서 사용하고 있음
- Request / Response 동작에 기반해 서비스를 제공
- 기존 (1.0 버전)에는 요청 하나마다 연결을 일일이 해줘야했지만,버전 1.1에서는 한번의 연결에서 여러 HTTP 요청을 할 수 있게 수정됨
HTTP 요청 프로토콜의 구조
- Request Line: HTTP를 통해 어떠한 요청을 하는지 표현하는 부분
- Header : 데이터 요청시 필요한 부가적인 정보를 제공하는 부분
- Body : 요청에 필요한 데이터가 들어가는 부분
Request Line
- HTTP를 통해 어떠한 요청을 하는지 표현하는 부분으로 구조는 다음 그림과 같음
- 요청타입에는 GET, POST등과 같은 HTTP 메소드가 들어감
- URI(Uniform Resource Identifier)는 서버의 특정 자원에 접근하기 위한 식별자
- HTTP 버전에는 HTTP프로토콜의 버전을 넣음
URI의 구조
scheme://host[:port][/path][?query]
의 구조를 가짐
- scheme: 브라우저가 사용할 프로토콜을 나타내며, 보통 http, https를 사용
- host: 접속할 ip혹은 도메인 주소를 입력함
- port: 접속할 포트를 입력하며, 생략 가능함
- path: 서버에서 접속할 리소스의 경로
- query: key-value 형식으로 제공하는 파라미터, 여러개일 경우에는 &로 구분함
HTTP 응답 프로토콜의 구조
- 큰 틀에서는 동일하나, Request Line 대신 구조가 다른 Statsu Line이 들어가고 Body에 클라이언트가 요청한 데이터가 들어간다는 차이가 있음
Status Line
- HTTP 버전: HTTP프로토콜의 버전 표기
- 상태 코드: 클라이언트의 요청에 대한 응답 결과, 200번대는 연결이 성공했음을 알리고, 400번대는 클라이언트의 문제로 인한 요청 실패, 500번대는 서버의 문제로 인한 요청 실패를 의미함
- 상태 문구: 응답 결과 대한 구체적인 문구를 넣는 부분
출처:
https://www.youtube.com/watch?v=TwsQX1AnWJU&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=28
https://inuplace.tistory.com/823