Skip to Content
Suffering builds character
아카이브6.HTTPHTTP3.HTTP 프로토콜

3.HTTP 프로토콜

OSI 계층 중에서 응용 프로그램을 개발하는 개발자가 실무에서 주로, 직접적으로 활용하는 프로토콜은 HTTP

보통 브라우저인 클라이언트를 통해 전송되는 메시지를 요청(Request)객체라고 하며, 그에 따라 서버에서 응답으로 전송되는 메시지를 응답 객체(Response)라고 함

1.HTTP 요청 메서드

서버가 제공하는 요청별 동작은 무엇인지?

요청 메서드란 서버가 클라이언트에게 제공하는 동작들의 목록이 무엇이 있는지를 알려주는 역할

클라이언트는 서버의 동작 메서드를 보고 자신이 수행하고 싶은 동작을 요청할 수 있음

메서드분류공식적 의미멱등성 (Idempotent)요청 Body
GET리소스 조회리소스의 현재 표현을 요청OX
POST처리 요청특정 리소스에 대해 처리 요청 (생성 포함 가능)XO
PUT전체 대체대상 리소스를 요청 본문으로 완전히 대체OO
PATCH부분 수정대상 리소스의 일부를 수정XO
DELETE제거대상 리소스 삭제OX
HEAD메타데이터 조회GET과 동일하나 메시지 본문 없이 헤더만 요청OX
OPTIONS기능 조회대상 리소스에서 사용 가능한 통신 옵션 조회OX
Note

멱등성 (Idempotent)

  • 여러 번 수행해도 결과가 동일한 상태를 말함
  • GET, HEAD, PUT, DELETE, OPTIONS, TRACE

요청 Body

  • RFC 상으로 금지된 메서드는 없음
  • 다만 의미적으로 사용 여부가 정의됨

2.HTTP 헤더

클라이언트 - 서버 간 요청 응답 과정에서 주고받는 메타 정보

클라이언트와 서버는 상대편이 회신한 헤더에 담긴 정보를 통해 메시지를 어떻게 해석해야할지 결정할 수 있음

헤더는 크게 인증, 캐싱, 컨텐츠 협상, 쿠키, 리다이렉트 등 다양한 기능을 수행하는데 활용됨

3.HTTP 응답 상태코드

HTTP 응답 상태코드는 클라이언트의 요청에 대해 성공/실패 여부를 간단하게 알려주는 역할을 수행함

이러한 응답 코드는 크게 5가지로 구분됨

범위분류명 (Category)의미 요약대표 상태 코드
1xxInformational요청을 받았으며 처리 중임을 알림100 Continue, 101 Switching Protocols
2xxSuccessful요청이 정상적으로 처리됨200 OK, 201 Created, 204 No Content
3xxRedirection추가 동작(리다이렉션)이 필요함301 Moved Permanently, 302 Found, 304 Not Modified
4xxClient Error클라이언트 요청에 오류가 있음400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
5xxServer Error서버가 요청을 처리하지 못함500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable
Last updated on