HTTP 요청 메서드의 페이로드
HTTP 의 Wikipedia 항목 은 다음과 같은 HTTP 요청 방법을 나열합니다.
- HEAD : GET 요청에 해당하는 것과 동일한 응답을 요청하지만 응답 본문이 없습니다.
- GET : 지정된 리소스의 표현을 요청합니다.
- POST : 처리 할 데이터 (예 : HTML 양식에서)를 식별 된 리소스에 제출합니다. 데이터는 요청 본문에 포함됩니다.
- PUT : 지정된 리소스의 표현을 업로드합니다.
- DELETE : 지정된 리소스를 삭제합니다.
- 추적 : 수신 된 요청을 반향하여 클라이언트가 중간 서버에서 변경 또는 추가 한 내용 (있는 경우)을 볼 수 있습니다.
- 옵션 : 지정된 URL에 대해 서버가 지원하는 HTTP 메서드를 반환합니다. 특정 리소스 대신 '*'를 요청하여 웹 서버의 기능을 확인하는 데 사용할 수 있습니다.
- CONNECT : 일반적으로 암호화되지 않은 HTTP 프록시를 통해 SSL 암호화 통신 (HTTPS)을 용이하게하기 위해 요청 연결을 투명한 TCP / IP 터널로 변환합니다.
- PATCH : 리소스에 부분 수정을 적용하는 데 사용됩니다.
나는 (특히 처음 다섯 가지 방법과 관련하여) 알고 싶습니다.
- 페이로드를 수신 할 수있는 (예상되는) 메소드는 무엇입니까?
- 페이로드를 수신 할 수있는 메소드 중 어떻게 수신합니까?
- URL의 쿼리 문자열을 통해?
- URL로 인코딩 된 본문을 통해?
- 원시 / 청크 바디를 통해?
- 위의 ([모두 / 일부]) 조합을 통해?
- 페이로드를 수신 할 수있는 메소드 중 어떻게 수신합니까?
여러분이 (가급적이면 가벼운) 독서를 공유 할 수 있다면 모든 의견에 감사드립니다.
RFC 7231 , HTTP 1.1 의미 체계 및 콘텐츠는 HTTP 메서드의 의미 체계에 대한 가장 최신의 권위있는 소스입니다. 이 스펙은 GET, HEAD, OPTIONS 또는 CONNECT 메시지에 포함될 수있는 페이로드에 대해 정의 된 의미가 없다고 말합니다. 섹션 4.3.8은 클라이언트가 TRACE 요청에 대한 본문을 보내서는 안된다고 말합니다. 따라서 TRACE 만 페이로드를 가질 수 없지만 GET, HEAD, OPTIONS 및 CONNECT는 아마도 그렇지 않을 것이며 클라이언트가 하나를 보내면 서버는이를 처리하는 방법을 알지 못합니다 (무시할 수 있음을 의미).
모호한 것이 있다고 생각되면 우려 사항을 표명 할 수 있는 메일 링리스트 가 있습니다.
다음은 @Darrel이 게시 한 링크의 업데이트 된 버전 인 RFC 7231 의 요약입니다 .
- HEAD- 정의 된 본문 의미가 없습니다.
- GET- 정의 된 본문 의미가 없습니다.
- PUT- 본체가 지원됩니다.
- POST- 본문이 지원됩니다.
- DELETE- 정의 된 본문 의미가 없습니다.
- TRACE- 본문 이 지원 되지 않습니다 .
- 옵션 -본문이 지원되지만 사용법에 대한 의미는 없습니다 (향후에).
- CONNECT- 정의 된 본문 의미가 없습니다.
따라 @ 존은 또한 언급 한 모든 요청 방법은 URL에 쿼리 문자열을 지원 (하나 개의 주목할만한 예외 일 수 있습니다 옵션 에만 URL이 [내 테스트에서 유용한 것 같다 HOST/*
).
ATM에 관심이 없기 때문에 CONNECT 및 PATCH 방법을 테스트하지 않았습니다 .
GET 요청이 페이로드를 포함 할 수 있는지 여부가 명확하지 않습니다. GET 요청은 일반적으로 HEAD 요청과 동일하게 쿼리 문자열을 통해 양식 데이터를 게시합니다. HEAD는 본질적으로 GET입니다. 단, 응답 본문을 원하지 않습니다.
(참고 : GET 요청이 기술적으로 다른 프로토콜로 업그레이드 될 수 있기 때문에 명확하지 않다고 말합니다. 사실 웹 소켓 버전이이 작업을 수행했으며 일부 프록시 소프트웨어가 잘 작동하는 반면 다른 일부는 핸드 셰이크에 질식했습니다.)
POST에는 일반적으로 본문이 있습니다. 쿼리 문자열 사용을 방해하는 것은 없지만 POST 본문에는 일반적으로 POST의 양식 데이터가 포함됩니다.
더 많은 (그리고 더 자세한) 정보를 위해 실제 HTTP / 1.1 사양에 도달했습니다 .
참고 URL : https://stackoverflow.com/questions/5905916/payloads-of-http-request-methods
'UFO ET IT' 카테고리의 다른 글
Java 열거에서 foreach를 사용할 수없는 이유는 무엇입니까? (0) | 2020.11.14 |
---|---|
Python의 .get () 메서드 이해 (0) | 2020.11.14 |
null이 아닌 속성은 null 또는 임시 값을 참조합니다. (0) | 2020.11.14 |
Goto Label 이후의 변수 선언 (0) | 2020.11.14 |
OSX Command Line Tools 6.3 업데이트 후 C ++ 헤더 <__ debug> 누락 (0) | 2020.11.14 |