HTTP 메소드 종류
GET
- URI(URL)가 가진 정보를 검색하기 위해 서버측에 요청하는 형태이다.
- 데이터를 읽거나, 검색할 때에 사용된다.
- 요청을 전송할 때, URL 주소 끝에 파라미터로 포함되어 전송되며 이 부분을
쿼리 스트링(QueryString)
이라고 부릅니다.
-> www.example.com/show?name1=value1&name2=value2
- 불필요한 요청을 제한하기 위해 요청이 캐시될 수 있습니다.
-> 캐시
: 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다.
- 파라미터에 내용이 노출되기 때문에 민감한 데이터를 다룰 때 GET 요청을 사용해서는 안됩니다.
- 브라우저 기록에 남습니다.
- 북마크에 추가할 수 있습니다.
- 데이터 길이에 대한 제한이 있습니다.
- 멱등성(idempotent)을 가집니다.
-> 멱등성
: 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질
- 요청 성공시, 200(Ok) HTTP 응답코드를 여러 형식의 데이터와 함께 반환합니다.
POST
- 요청 URI(URL)에 폼 입력을 처리하기 위해 구성한 서버 측 스크립트(ASP, PHP, JSP 등) 혹은 CGI 프로그램으로 구성되고 Form Action과 함께 전송되는데, 이때 헤더 정보에 포함하지 않고 데이터 부분에 요청 정보가 들어가게 된다.
- POST 요청은 캐시되지 않습니다.
- 브라우저 기록에 남아 있지 않습니다.
- 북마크에 추가할 수 없습니다.
- 데이터 길이에 대한 제한이 없습니다.
- 멱동성(idempotent)이 없습니다.
- 자원 생성을 하며 201(Created) HTTP 응답 코드를 반환합니다.
HEAD
- GET과 유사한 방식이나 웹 서버에서 헤더 정보 이외에는 어떤 데이터도 보내지 않는다.
- 웹 서버의 다운 여부 점검(Health Check)이나 웹 서버 정보(버전 등)등을 얻기 위해 사용될 수 있다.
OPTIONS
- 해당 메소드를 통해 시스템에서 지원되는 메소드 종류를 확인할 수 있다.
PUT
- POST와 유사한 전송 구조를 가지기 때문에 헤더 이외에 메시지(데이터)가 함께 전송된다.
- 원격지 서버에 지정한 콘텐츠를 저장하기 위해 사용되며 홈페이지 변조에 많이 악용되고 있다.
- POST는 Create(생성)에 사용되고 PUT은 Update(수정)에 사용된다.
-> 존재하지 않는 식별자로 요청하면 POST와 동일하게 자원을 생성하지만 두번째 요청부터는 POST와 다르게 자원을 생성하지 않고 교체하게 됩니다.
- 멱등성(idempotent)을 가진다.
- PUT 응답은 캐시되지 않습니다.
DELETE
- 원격지 웹 서버에 파일을 삭제하기 위해 사용되며 PUT과는 반대 개념의 메소드이다.
TRACE
- 원격지 서버에 Loopback 메시지를 호출하기 위해 사용된다.
CONNECT
- 웹 서버에 프록시 기능을 요청할 때 사용한다.
-> 프록시(Proxy)
: 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.