HTTP(Hypertext Transfer Protocol)

통신 프로토콜중 하나로 World Wide Web(www)의 토대이다

HTTP는 OSI 7 layer 계층중 세션,표현,응용 계층에 속하며

TCP/IP에서는 응용 계층에 속한다

클라이언트와 서버 사이의 요청-응답 모델을 기반으로 작동한다

클라이언트(일반적인 웹 브라우저)가 서버에 요청을 보내면

서버는 그 요청을 처리한 후 적절한 응답을 클라이언트에게 전송함

HTTP의 주요 특성

Stateless

각 요청과 응답은 독립적이다. 서버는 클라이언트의 이전 요청을 기억하지 않는다

Connectionless

요청과 응답이 완료되면 연결이 끊긴다

그러나 HTTP/1.1 버전 부터는 Keep-Alive 메커니즘을 통해 연결을 재사용할 수 있다.

Simple

HTTP 요청과 응답 메시지는 간단하고 이해하기 쉽게 설계되어 있음

Extensible

새로운 헤더를 추가하여 프로토콜을 확장할 수 있다.

이 부분에 대해선 처음알았다…

HTTP 메서드

HTTP는 다양한 메서드를 지원한다 가장 일반적으로 사용 되는 메서드는 아래 표와 같다

의미CRUD멱등성안정성PathVariableQueryParameterDataBody
GET리소스 취득ROOOOX
POST리소스 생성,추가CXXOO
PUT리소스 갱신,생성C / UOXOO
DELETE리소스 삭제DOXOOX
HEAD헤더 데이터 취득-OO---
OPTIONS지원하는 메소드 취득-O----
TRACE요청메시지 반환-O----
CONNECT프록시 동작의 터널 접속으로 변경-X----

HTTP 상태 코드

HTTP 응답에는 상태가 포함되어 있다

요청이 성공했는지 그렇지 않다면 어떤 문제가 있는지 나타낸다 아래는 자주 만나게 되는 상태 코드다

  • 200 OK: 성공 적으로 처리되었다
  • 404 Not Found : 요청한 리소스가 존재하지 않음
  • 500 Internal Server Error: 서버 내부 오류

웹개발을 하다보면 아마 제일 자주 보게 되는게 404,403,405,500 에러다

왜냐면 성공하면 상태코드가 브라우저에 바로 보이진 않으니

여담

Restful API는 이 HTTP를 토대로 동작한다

0개의 댓글