참고: https://roka88.dev/106?category=830369(번역 블로그)

참고: https://tools.ietf.org/html/rfc7231(원본)

GET

타겟 리소스(URI)요청 ⇒ 결과(response)전송

"리소스"의 종류는 제한이없음

tree of content objects, database records, gateway to other information systems, executable file 등등

요청받은 각 리소스 종류별 response처리는 origin server에서 구현하기 나름

요청된 파일을 읽어 내용을 그대로 보내줄수도있는 반면 실행해서 실행된 결과를 보내줄수도있음(php, exec)

클라이언트는 Range 헤더 필드를 전송하여 선택된 표현의 일부만 전송을 요청하는 "range request"로 GET의 의미를 바꿀 수 있다.

⇒ 그런데 server MAY ignore the Range header field.(https://tools.ietf.org/html/rfc7233 )니까 필수구현은 아님

요청에 대한 응답은 캐싱 가능하지만 역시 MAY조건. 필수구현은 아님

HEAD

메시지 본문을 전송하지 않아야 한다(MUST NOT)

GET요청과 동일한 헤더 필드를 전송해야한다.(SHOULD)

요청에 대한 응답은 캐싱 가능하지만 MAY조건. 필수구현은 아님

POST

요청 처리 결과에 따라 적절한 상태코드 선택하는데 대부분의 status codes가 POST에 대한 응답으로 보내짐. 예외 // 206(Partial Content), 304(Not Modified), 416(Range Not Satisfiable)