POST(HTTP)

POST (HTTP)

컴퓨팅에서 POSTWorld Wide Web에서 사용되는 HTTP에서 지원되는 요청 방식입니다.설계상 POST 요구 메서드는 요청 메시지 본문에 포함된 데이터를 웹 서버에 받아들이도록 요구합니다(대부분 [1]저장용).파일을 업로드 할 때나 완성된 웹 폼을 제출할 때 자주 사용됩니다.

반면 HTTP GET 요구 메서드는 서버에서 정보를 가져옵니다.GET 요청의 일부로서 검색어, 날짜 범위 또는 쿼리를 정의하는 기타 정보를 지정하는 등 URL의 쿼리 문자열 에서 일부 데이터를 전달할 수 있습니다.

POST 요구의 일부로서 임의의 종류의 데이터를 요구 메시지 본문에 있는 서버에 송신할 수 있습니다.POST 요청의 헤더 필드는 일반적으로 메시지 본문의 인터넷 미디어 유형을 나타냅니다.

데이터 투고

월드와이드웹과 HTTP는 POST와 GET뿐만 아니라 PUT, DELETE 및 기타 여러 가지 요청 메서드 또는 '버사'를 기반으로 합니다.웹 브라우저는 보통 GET과 POST만 사용하지만 RESTful 온라인 앱은 다른 앱의 대부분을 사용합니다.HTTP 메서드의 범위에서 POST는 새로운 데이터 엔티티의 표현을 서버로 전송하여 [1]URI에 의해 식별되는 자원의 새로운 하위 항목으로 저장하도록 합니다.예를 들어 URI의 경우http://example.com/customersPOST 요청은 이름, 주소, 연락처 세부사항 등을 포함하여 새로운 고객을 나타낼 수 있습니다.초기 웹 사이트 디자이너들은 두 가지 중요한 방법으로 이 원래 개념에서 벗어났습니다.첫째, URI가 POST 데이터가 저장되는 웹 리소스를 텍스트로 기술할 이유가 없습니다.실제로 URI의 마지막 부분에는 웹 어플리케이션의 처리 페이지와 그 테크놀로지가 기술되어 있습니다.http://example.com/applicationform.php둘째, 대부분의 웹 브라우저는 GET 또는 POST만을 사용하기에는 한계가 있기 때문에 설계자는 기존 레코드의 변경 및 삭제를 포함한 많은 데이터 전송 및 데이터 관리 태스크를 수행하기 위해 POST를 다시 사용할 필요성을 느꼈습니다.

첫 번째 점을 바로잡기 위한 몇몇 영향력 있는 작가들의 [2]노력은 1998년에 시작되었다.Ruby on Rails 의 웹 애플리케이션 프레임워크는 설계자가 사용자에게 의미 URL을 쉽게 제공할 수 있도록 합니다.두 번째 포인트는 클라이언트 스크립팅을 사용하거나 [3]스탠드아론 어플리케이션을 작성하여 관련된 다른 HTTP 메서드를 사용할 수 있지만 서버 데이터를 제출하거나 변경하는 대부분의 웹 폼에서는 POST를 계속 사용합니다.

그렇다고 해서 모든 웹 폼이 다음을 지정해야 하는 것은 아닙니다.method="post"시작 태그에 있습니다.메인 데이터베이스를 변경하지 않고 서버로부터의 정보 취득을 보다 정확하게 지정하기 위해 많은 양식이 사용됩니다.예를 들어, 검색 양식은 다음과 같은 경우에 적합합니다.method="get"지정되었습니다.[4]

HTTP GET이 데이터 취득에도 적합하지 않을 수 있습니다.예를 들어 URL에 대량의 데이터를 지정해야 하는 경우가 있습니다.브라우저와 웹 서버는 잘라내거나 오류를 발생시키지 않고 처리할 URL 길이에 제한이 있을 수 있습니다.웹 페이지 주소 그리고 쿼리 문자열에 예약된 캐릭터들의 퍼센트 인코딩 그리고는 동안 아파치 HTTP서버에는 URL,[5]MicrosoftInternetExplorer에 URL.[6]Equally에 감소한 캐릭터로 제한된다 4000명까지 문자를 감당할 수 있으면 HTTPGET사용하지 않아야 한다 그들의 길이를 증가시킬 수 있는 민감한 정보 등을 사용 자명과 passw.ords,요청을 완료하려면 다른 데이터와 함께 제출해야 합니다.HTTPS 를 사용하고 있어도, 전송중의 데이터의 감청을 막기 위해서, 브라우저의 이력이나 Web 서버의 로그에는, 통상의 URL 가 격납되어 있기 때문에, 어느쪽의 시스템이 해킹 당했을 경우에 노출될 가능성이 있습니다.이 경우 HTTP POST를 [7]사용해야 합니다.

웹 양식 제출에 사용

웹 브라우저가 웹 양식 요소에서 POST 요청을 보낼 때 기본 인터넷 미디어 유형은 "application/x-www-form-urlencoded"[8]입니다.이것은 중복된 키를 사용하여 키와 값의 쌍을 인코딩하는 형식입니다.각 키-값 쌍은 '&' 문자로 구분되고 각 키는 값에서 '=' 문자로 구분됩니다.공백이 '+' 문자로 대체되고 다른 모든 영숫자[9] 아닌 문자에 퍼센트 인코딩을 사용하면 키와 값이 모두 이스케이프됩니다.

예를 들어 키와 값의 쌍은

이름 : 개러스 와일리 나이 : 24 식 : a+b == 21

로 부호화되어 있다.

이름=가레스+와일리&에이지=24&포뮬라=a%2Bb+%3D%3D+21

HTML 4.0 이후 폼은 RFC 2388에 정의된 멀티파트/폼 데이터로 데이터를 제출할 수도 있습니다(HTML 2.0의 확장으로 정의되고 HTML 3.2에 언급된 이전 실험 버전에 대해서는 RFC 1867도 참조).

폼이 속하는 페이지와 같은 페이지에 POST를 하는 특수한 경우를 포스트백이라고 합니다.

서버 상태에 영향을 주다

RFC 7231에 따르면 POST 방식은 idempotent가 아닙니다.즉, 동일한 요구가 여러 개 있는 경우 요청을 한 번만 전송하는 경우와는 같은 효과가 없을 수 있습니다.따라서 POST는 블로그 투고에 코멘트를 송신하거나 온라인 폴링에서 투표하는 등 실행 시마다 상태를 변경하는 요구에 적합합니다.GET은 부작용이 없는 늘프티로 정의되며, 아이돌 포텐트 조작은 "두 번째 또는 미래의 [10][11]요구에 대한 부작용"이 없습니다.따라서 검색 엔진 인덱서와 같은 웹 크롤러는 일반적으로 GET 및 HEAD 메서드를 단독으로 사용하여 자동화된 요청이 이러한 작업을 수행하지 않도록 합니다.

단, 특히 요구가 매우 긴 경우 등가성 요구에도 POST가 사용되는 이유가 있습니다.URL 제한으로 인해 GET 메서드에 의해 생성되는 쿼리 문자열은 특히 [10]퍼센트 인코딩에 의해 매우 길어질 수 있습니다.

레퍼런스

  1. ^ a b "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content - 4.3.3 POST". Retrieved 2014-07-24. The POST method requests that the target resource process the representation enclosed in the request according to the resource's own specific semantics.
  2. ^ Berners-Lee, Tim (1998). "Cool URIs don't change". W3C. Retrieved 17 October 2012.
  3. ^ Friedman, Mike (2009). "Using HTTP PUT and DELETE methods in web applications". Retrieved 17 October 2012.
  4. ^ "Form submission". HTML 4.01 Specification. W3C. 1999. Retrieved 17 October 2012.
  5. ^ Rigsby, Dan (2008). "REST and Max URL Size". Archived from the original on 4 November 2012. Retrieved 17 October 2012.
  6. ^ "Maximum URL length is 2,048 characters in Internet Explorer". Microsoft.
  7. ^ "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content - 9.4 Disclosure of Sensitive Information in URIs". RFC 7231. Retrieved 2014-07-25.
  8. ^ Berners-Lee, Tim; Connolly, Dan (22 September 1995). "Hypertext Markup Language - 2.0 - Forms". World Wide Web Consortium. Retrieved 15 January 2011.
  9. ^ "Forms in HTML documents".
  10. ^ a b Korpela, Jukka (28 September 2003). "Methods GET and POST in HTML forms - what's the difference?". Tampere University of Technology. Retrieved 15 January 2011.
  11. ^ RFC 7231, 4.2.1의 안전한 방법

외부 링크