a. 클라이언트/서버 구조
b. 무상태성(Stateless)
c. 캐시 처리 가능(Cacheable)
d. 자체 표현 구조(Self-descriptiveness)
e. 계층화(Layered System)
f. 유니폼 인터페이스(Uniform)
a. 자원을 식벽할 수 있어야 한다.
b. 행위는 명시적이어야 한다.
c. 자기 서술적이어야 한다.
d. HATEOS(Hypermedia as the Engine of APplication State)
| HTTP Method | 전송형태 | 설명 |
|---|---|---|
| GET | GET [request-uri]?query_string HTTP/1.1 | 요청 받은 URI의 정보를 검색하여야 응답한다. |
| HEAD | HEAD [request-uri] HTTP/1.1 | GET 방식과 동일하지만, 응답에 BODY가 없고 응답코드와 HEAD만 응답한다. 웹서버 정보확인, 헬스체크, 버전확인, 최종 수정일자 확인등으 용도로 사용된다. |
| POST | POST [request-uri] HTTP/1.1 Host:[Hostname] 혹은 [IP] Content-Lenght:[Length in Bytes] Content-Type:[Content Type][데이터] | 요청된 자원을 생성(CREATE)한다. 새로 작성된 리소스인 경우 HTTP헤더 항목 Location : URI주소를 포함하여 응답한다. |
| PUT | PUT [request-uri] HTTP/1.1 Host:[Hostname] 혹은 [IP] Content-Lenght:[Length in Bytes] Content-Type:[Content Type][데이터] | 요청된 자원을 수정(UPDATE)한다. 내용 갱신을 위주로 Location : URI를 보내지 않아도 된다. 클라이언트측은 요청된 URI를 그대로 사용하는 것으로 간주한다. |
| PATCH | PATCH [request-uri] HTTP/1.1 Host:[Hostname] 혹은 [IP] Content-Lenght:[Length in Bytes] Content-Type:[Content Type][데이터] | PUT과 유사하게 요청된 자원을 수정(UPDATE)할 때 사용한다. PUT의 경우 자원 전체를 갱신하는 의미지만, PATCH는 해당자원의 일부를 교체하는 의미로 사용한다. |
| DELETE | DELETE [request-uri] HTTP/1.1 Host:[Hostname] 혹은 [IP] | 요청된 자원을 삭제 할 것를 요청한다. |
| CONNECT | CONNECT [request-uri] HTTP/1.1 Host:[Hostname] 혹은 [IP] | 동적으로 터널 모드를 교환, 프록시 기능을 요청시 사용한다. |
| TRACE | TRACE [request-uri] HTTP/ 1.1 Host: [Hostname] 혹은 [IP] | 원격지 서버에 루프백 메시지 호출하기 위해 테스트용으로 사용한다. |
| OPTIONS | OPTIONS [request-uri] HTTP/ 1.1 Host: [Hostname] 혹은 [IP] | 웹서버에서 지원되는 메소드의 종류를 확인할 경우 사용한다. |