티스토리 뷰

개발 낙서장

HTTP request method

CodingTrader 2021. 5. 20. 02:44
728x90

GET

 

GET은 지정된 리소스에서 데이터를 요청하는 데 사용됩니다.

가장 일반적인 HTTP method중 하나이다.

 

쿼리 문자열 (이름 / 값 쌍)은 GET 요청의 URL로 전송됩니다.

/test/demo_form.php?name1=value1&name2=value2

 

  • GET 요청을 캐시 할 수 있습니다.
  • GET 요청은 브라우저 기록에 남아 있습니다.
  • GET 요청을 북마크 할 수 있습니다.
  • 민감한 데이터를 처리 할 때 GET 요청을 사용해서는 안됩니다. (GET parameter에 다 노출 되기 때문에)
  • GET 요청에는 길이 제한이 있습니다.
  • GET 요청은 데이터를 요청하는 데만 사용됩니다 (수정하지 않음).

 

POST

 

POST는 리소스를 생성 / 업데이트하기 위해 서버로 데이터를 보내는 데 사용됩니다.

GET과 마찬가지로 가장 일반적인 HTTP method중 하나이다.

POST를 통해 서버로 전송 된 데이터는 HTTP 요청의 요청 본문에 저장됩니다.

 

POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

 

POST방식은 전송할 데이터를 body 부분에 담아서 서버로 보내고, Content-Type header(Http header에서 리소스의 미디어 타입을 나타내는 header)에 따라서 body의 타입이 결정된다. 데이터의 길이 제한이 없으며, GET 방식과 달리 데이터가 외부적으로 드러나지 않는다. (데이터를 암호화 하지 않으면, body의 내용 확인 가능)

 

  • POST 요청은 캐시되지 않습니다.
  • POST 요청은 브라우저 기록에 남아 있지 않습니다.
  • POST 요청은 북마크 할 수 없습니다.
  • POST 요청은 데이터 길이에 제한이 없습니다.

 

HEAD

 

HEAD는 특정 리소스를 GET 메서드로 요청했을 때 돌아올 헤더를 요청합니다.

HEAD 메서드에 대한 응답은 본문을 가져선 안되며, 본문이 존재하더라도 무시해야 합니다.

Content-Length(수신자에게 전송된 엔티티 바디의 크기를 10진수 바이트 단위로 나타낸다.)처럼 본문 콘텐츠를 설명하는 개체 헤더는 포함할 수 있습니다. 이 때, 개체 헤더는 비어있어야 하는 HEAD의 본문과는 관련이 없고, 대신 GET 메서드로 동일한 리소스를 요청했을 때의 본문을 설명합니다.

HEAD 요청의 응답이 캐시했던 이전 GET 메서드의 응답을 유효하지 않다고 표시할 경우, 새로운 GET 요청을 생성하지 않더라도 캐시를 무효화합니다.

 

PUT

 

PUT은 요청 페이로드를 사용해 새로운 리소스를 생성하거나, 대상 리소스를 나타내는 데이터를 대체합니다.

PUT과 POST의 차이는 PUT은 멱등성을 가지고, POST는 멱등성을 가지지 않는다. PUT은 한 번을 보내도, 여러 번을 연속으로 보내도 같은 효과를 보입니다.

 

*멱등성: 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다.

 

DELETE

 

DELETE는 지정한 리소스를 삭제합니다.

 

CONNECT

 

CONNECT는 요청한 리소스에 대해 양방향 연결을 시작하는 메소드입니다. 이는 터널을 열기 위해서 사용될 수 있습니다. 예를 들어, CONNECT는 SSL(HTTPS)를 사용하는 웹사이트에 접속하는데 사용될 수 있습니다. 클라이언트는 원하는 목적지와의 TCP 연결을 HTTP 프록시 서버에 요청합니다. 그러면 서버는 클라이언트를 대신하여 연결의 생성을 진행합니다. 한번 서버에 의해 연결이 수립되면, 프록시 서버는 클라이언트에 오고가는 TCP 스트림을 계속해서 프록시합니다.

 

CONNECT는 hop by hop 메소드입니다.

 

hop by hop:

데이타통신망에서 각 패킷이 매 노드(또는 라우터)를 건너가는 양상을 비유적으로 표현했고 이러한 체계를 hop-by-hop 체제라고 함

 

OPTIONS

 

OPTIONS는 목표 리소스와의 통신 옵션을 설명하기 위해 사용됩니다. 클라이언트는 OPTIONS 메소드의 URL을 특정지을 수 있으며, aterisk(*) 를 통해 서버 전체를 선택할 수 있습니다.

 

TRACE

 

TRACE 유용한 디버그 메커니즘을 제공 대상 자원의 경로를 따라 메시지 루프 - 백 테스트를 수행한다.

 

PATCH

 

PATCH 리소스에 일부 변경을 적용한다.

 

PUT 메소드는 문서 전체의 완전한 교체만을 허용합니다. 반면 PATCH 메소드는 PUT 메소드와 달리 멱등성을 가지지 않는데, 이는 동일한 PATCH 요청이 다른 결과를 야기할 수도 있음을 뜻합니다. 하지만 PATCH를 PUT과 같은 방식으로 사용함으로써 멱등성을 가지게 할 수도 있습니다. (다른 리소스에게 부수효과(side-effects)를 일으킬 가능성이 있습니다.)

 

 

참조:

https://developer.mozilla.org/ko/docs/Web/HTTP/Headers

https://www.w3schools.com/tags/ref_httpmethods.asp

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함
250x250