참고: https://roka88.dev/106?category=830369(번역 블로그)
참고: https://tools.ietf.org/html/rfc7231(원본)
타겟 리소스(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조건. 필수구현은 아님
메시지 본문을 전송하지 않아야 한다(MUST NOT)
GET요청과 동일한 헤더 필드를 전송해야한다.(SHOULD)
요청에 대한 응답은 캐싱 가능하지만 MAY조건. 필수구현은 아님
요청 처리 결과에 따라 적절한 상태코드 선택하는데 대부분의 status codes가 POST에 대한 응답으로 보내짐. 예외 // 206(Partial Content), 304(Not Modified), 416(Range Not Satisfiable)