HTTP 메서드는 클라이언트가 서버에 원하는 작업을 명확하게 전달하고 표준화된 방식으로 리소스를 처리하기 위해 사용됩니다.
GET /member/100 에서 /member/100은 리소스(특정회원), GET은 행위를 의미합니다.#데이터 요청
GET /members/100 HTTP/1.1 //[메서드][조회쿼리][HTTP버전]
Host: localhost:8080
#서버 응답처리 - JSON/XML/HTML 등등
{
"username":"kim",
"age": 20
}
#응답 메시지
HTTP/1.1 200 OK // [HTTP버전][응답코드][수신확인]
Content-Type: application/json //[전달타입]
Content-Length: 32 //[길이]
{
"username": "kim",
"age":20
}
POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
username=user&password=pass123
기존 리소스 : {name : aaa, age:20}
put 전송 : {age : 10}
변경 리소스 : {age : 10}
과 같은 형태로 완전히 덮어버리기때문에 기존에 있던 name필드가 손실된 것을 확인 할 수 있다.
PUT과 POST 비교
PUT
클라이언트가 리소스를 명시적으로 식별. 동일한 요청이 여러번 반복되어도 동일한 결과.POST
서버가 리소스를 식별. 동일한 요청이 반복되면 리소스 중복 생성 가능.
기존 리소스 : {name : aaa, age:20}
PATCH 전송 : {age : 10}
변경 리소스 : {name : aaa, age : 10}
서버에서 PATCH를 지원하지 않는 경우에는 POST를 통해 부분 업데이트를 구현 할 수 있음
HEAD
OPTIONS
TRACE
클라이언트와 서버의 통신 상태를 식별할 수 있는 상태코드 입니다.
주로 상위코드에 따라 해석되어 처리되며 상태코드가 추가되더라도 클라이언트는 변경하지 않아도 됩니다.
Location 헤더에 있으면 해당 위치로 자동 이동./member → /user)PRG (POST/Redirect/GET)
- POST 요청 후 중복 요청 문제를 방지하기 위한 방법
- POST 요청 후 서버가 302/303 상태 코드로 리다이렉션 응답
- 클라이언트는 리다이렉션된 URL로 GET 요청을 수행
- 사용 사례:
- 주문 결제 후 결제 내역 확인 페이지 로드
- 회원가입 후 확인 페이지
300 Multiple Choices: 여러 리소스 중 선택 가능
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
307 Temporary Redirect
308 Permanent Redirect
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
Retry-After 헤더로 복구 시간 예고 가능504 Gateway Timeout