통신 프로토콜중 하나로 World Wide Web(www)의 토대이다
HTTP는 OSI 7 layer 계층중 세션,표현,응용 계층에 속하며
TCP/IP에서는 응용 계층에 속한다
클라이언트와 서버 사이의 요청-응답 모델을 기반으로 작동한다
클라이언트(일반적인 웹 브라우저)가 서버에 요청을 보내면
서버는 그 요청을 처리한 후 적절한 응답을 클라이언트에게 전송함
각 요청과 응답은 독립적이다. 서버는 클라이언트의 이전 요청을 기억하지 않는다
요청과 응답이 완료되면 연결이 끊긴다
그러나 HTTP/1.1 버전 부터는 Keep-Alive 메커니즘을 통해 연결을 재사용할 수 있다.
HTTP 요청과 응답 메시지는 간단하고 이해하기 쉽게 설계되어 있음
새로운 헤더를 추가하여 프로토콜을 확장할 수 있다.
이 부분에 대해선 처음알았다…
HTTP는 다양한 메서드를 지원한다 가장 일반적으로 사용 되는 메서드는 아래 표와 같다
의미 | CRUD | 멱등성 | 안정성 | PathVariable | QueryParameter | DataBody | |
---|---|---|---|---|---|---|---|
GET | 리소스 취득 | R | O | O | O | O | X |
POST | 리소스 생성,추가 | C | X | X | O | △ | O |
PUT | 리소스 갱신,생성 | C / U | O | X | O | △ | O |
DELETE | 리소스 삭제 | D | O | X | O | O | X |
HEAD | 헤더 데이터 취득 | - | O | O | - | - | - |
OPTIONS | 지원하는 메소드 취득 | - | O | - | - | - | - |
TRACE | 요청메시지 반환 | - | O | - | - | - | - |
CONNECT | 프록시 동작의 터널 접속으로 변경 | - | X | - | - | - | - |
HTTP 응답에는 상태가 포함되어 있다
요청이 성공했는지 그렇지 않다면 어떤 문제가 있는지 나타낸다 아래는 자주 만나게 되는 상태 코드다
웹개발을 하다보면 아마 제일 자주 보게 되는게 404,403,405,500 에러다
왜냐면 성공하면 상태코드가 브라우저에 바로 보이진 않으니
Restful API는 이 HTTP를 토대로 동작한다