HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 클라이언트가 웹 서버에게 사용자 요청의 목적이나 종류를 알리는 수단이다.
Method | 기능 | 특징 | 요청 Body | 응답 Body | 안전 | 멱등성 | 캐시 |
---|---|---|---|---|---|---|---|
GET | 조회 | 특정 데이터를 요청한다. | 없음 | 있음 | 예 | 예 | 가능 |
HEAD | header 조회 | GET과 동일한 응답을 요구하지만 header 정보만 가져온다. | 없음 | 없음 | 예 | 예 | 가능 |
POST | 생성 | 데이터 생성을 요청한다. | 있음 | 있음 | 아니요 | 아니요 | 불가능에 가까움 |
PUT | 수정 | 데이터를 수정하거나 존재하지 않으면 생성할 것을 요청한다. | 없음 | 있음 | 아니요 | 아니요 | 불가능 |
DELETE | 삭제 | 특정 데이터 삭제를 요청한다. | 없음 | 있음 | 아니요 | 예 | 불가능 |
CONNECT | 연결 | 대상 자원으로 식별되는 서버에 대한 터널을 설정한다. | 있음 | 있음 | 아니요 | 아니요 | 불가능 |
OPTIONS | 설정 | 해당 URI에 대한 서버가 허용하는 메서드를 확인할 때 요청한다. | 선택 사항 | 있음 | 예 | 예 | 불가능 |
TRACE | 테스트 | 목적 리소스의 경로를 따라 메세지 loop-back 테스트를 한다. | 없음 | 있음 | 예 | 예 | 불가능 |
PATCH | 일부 수정 | 데이터의 일부 수정을 요청한다. | 있음 | 있음 | 아니요 | 아니요 | 가능 |
여러 번 메서드를 호출해도 리소스가 변경되지 않는다는 뜻이다. 주요 메소드 중에는 GET 메소드가 안전하다고 볼 수 있다.
여러 번 메서드를 호출해도 결과가 똑같다는 뜻이다.
캐싱은 주어진 리소스의 복사본을 저장하고 있다가 요청 시에 그것을 제공하는 기술이다. 이전에 가져온 리소스를 재사용하여 성능을 향상시킨다.
POST의 경우 신선도가 표시되고 헤더가 설정된 경우 캐시될 수 있지만 이는 거의 구현되지 않는다. 브라우저에서 지원하지 않는 경우가 많은편이라 불가능이라고 판단하는 편이다.
특정 HTTP 요청이 성공적으로 완료되었는지 알려준다. 응답은 5가지의 그룹으로 나누어진다.