Postman Chrome 애플리케이션에서 양식 데이터 x-www-form-urlencoded와 raw의 차이점은 무엇입니까?
웹 서비스 테스트에 Postman Chrome 확장 프로그램을 사용하고 있습니다. 데이터 입력에 사용할 수있는 세 가지 옵션이 있습니다. 나는 원시가 JSON을 보내기위한 것이라고 생각합니다. 다른 두 양식 데이터와 x-www-form-urlencoded의 차이점은 무엇입니까?
이들은 W3C에 의해 정의 된 다른 양식 컨텐츠 유형입니다. 간단한 텍스트 / ASCII 데이터를 보내려면 x-www-form-urlencoded 가 작동합니다. 이것이 기본값입니다.
그러나 비 ASCII 텍스트 또는 큰 이진 데이터를 보내야하는 경우 양식 데이터 가 적합합니다.
일반 텍스트 나 JSON 또는 다른 종류의 문자열을 보내려면 Raw 를 사용할 수 있습니다 . 이름에서 알 수 있듯이 Postman은 원시 문자열 데이터를 수정없이 그대로 보냅니다. 드롭 다운에서 컨텐츠 유형 헤더를 사용하여 전송중인 데이터 유형을 설정할 수 있습니다.
이진 은 비디오 / 오디오 파일, 이미지 또는 기타 이진 데이터 파일과 같이 텍스트가 아닌 데이터를 요청에 첨부 할 때 사용할 수 있습니다.
자세한 내용은이 링크를 참조하십시오. HTML 문서의 양식
더 나은 설명 : 우편 배달부 문서
요청 본문
요청을 구성하는 동안 요청 본문 편집기를 많이 다루게됩니다. Postman을 사용하면 거의 모든 종류의 HTTP 요청을 보낼 수 있습니다 (전송할 수없는 경우 알려주세요!). 본문 편집기는 4 개의 영역으로 구분되며 본문 유형에 따라 다른 컨트롤이 있습니다.
양식 데이터
multipart / form-data는 웹 양식이 데이터를 전송하는 데 사용하는 기본 인코딩입니다.웹 사이트에서 양식을 작성하여 제출하는 것을 시뮬레이션합니다. 양식 데이터 편집기를 사용하면 데이터에 키 / 값 쌍 (키-값 편집기 사용)을 설정할 수 있습니다. 파일을 키에 첨부 할 수도 있습니다. HTML5 스펙의 제한으로 인해 파일은 히스토리 또는 콜렉션에 저장되지 않습니다. 요청을 보낼 때 파일을 다시 선택해야합니다.urlencoded
이 인코딩은 URL 매개 변수에 사용 된 것과 동일합니다. 키 / 값 쌍만 입력하면 Postman이 키와 값을 올바르게 인코딩합니다. 이 인코딩 모드를 통해 파일을 업로드 할 수 없습니다. 양식 데이터와 urlencoded간에 혼동이있을 수 있으므로 먼저 API를 확인하십시오.
노골적인
원시 요청에는 모든 것이 포함될 수 있습니다. Postman은 환경 변수 교체를 제외하고 원시 편집기에 입력 한 문자열을 건드리지 않습니다. 텍스트 영역에 넣은 내용이 요청과 함께 전송됩니다. raw 편집기를 사용하면 raw body와 함께 보내야하는 올바른 헤더와 함께 형식 유형을 설정할 수 있습니다. Content-Type 헤더를 수동으로 설정할 수도 있습니다. 일반적으로 여기에서 XML 또는 JSON 데이터를 보냅니다.
이진
이진 데이터를 사용하면 Postman에 입력 할 수없는 것을 보낼 수 있습니다. 예를 들어, 이미지, 오디오 또는 비디오 파일. 텍스트 파일도 보낼 수 있습니다. 양식 데이터 섹션에서 앞서 언급 한 것처럼 기록 또는 컬렉션을 통해 요청을로드하는 경우 파일을 다시 첨부해야합니다.
최신 정보
VKK 에서 지적한 바와 같이 WHATWG 사양에 따르면 urlencoded는 양식의 기본 인코딩 유형입니다.
이러한 속성의 유효하지 않은 기본값은 application / x-www-form-urlencoded 상태입니다. enctype 속성의 결 측값 기본값은 application / x-www-form-urlencoded 상태이기도합니다.
멀티 파트 / 폼 데이터
노트. 이전 버전과의 호환성 문제, "멀티 파트 / 양식 데이터"와 기타 콘텐츠 유형 간의 관계, 성능 문제 등 파일 업로드에 대한 추가 정보는 RFC2388 을 참조하십시오 .
양식의 보안 문제에 대한 정보는 부록을 참조하십시오.
"application / x-www-form-urlencoded"컨텐츠 유형은 대량의 이진 데이터 또는 ASCII가 아닌 문자를 포함하는 텍스트를 전송하는 데 비효율적입니다. 컨텐츠 유형 "multipart / form-data"는 파일, 비 ASCII 데이터 및 2 진 데이터를 포함하는 양식을 제출하는 데 사용해야합니다.
컨텐트 유형 "multipart / form-data"는 RFC2045에 요약 된 모든 멀티 파트 MIME 데이터 스트림의 규칙을 따릅니다 . "multipart / form-data"의 정의는 [IANA] 레지스트리에서 사용할 수 있습니다.
"multipart / form-data"메시지는 각각 성공적인 제어를 나타내는 일련의 파트를 포함합니다. 부품은 해당 제어가 문서 스트림에 나타나는 것과 동일한 순서로 처리 에이전트로 전송됩니다. 데이터에서 부품 경계가 발생해서는 안됩니다. 이 작업을 수행하는 방법은이 사양의 범위를 벗어납니다.
모든 멀티 파트 MIME 유형과 마찬가지로 각 파트에는 기본적으로 "text / plain"으로 설정되는 선택적 "Content-Type"헤더가 있습니다. 사용자 에이전트는 "charset"매개 변수와 함께 "Content-Type"헤더를 제공해야합니다.
application / x-www-form-urlencoded
이것이 기본 컨텐츠 유형입니다. 이 컨텐츠 유형으로 제출 된 양식은 다음과 같이 인코딩되어야합니다.
제어 이름 및 값이 이스케이프됩니다. 공백 문자는 +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
% HH ', 퍼센트 부호 및 문자의 ASCII 코드를 나타내는 두 개의 16 진수 로 대체됩니다 . 줄 바꿈은 "CR LF"쌍으로 표시됩니다 (즉, %0D%0A'). The control names/values are listed in the order they appear in the document. The name is separated from the value by
= '와 이름 / 값 쌍은`&'로 서로 구분됩니다.
application/x-www-form-urlencoded
서버로 전송되는 HTTP 메시지의 본문은 본질적으로 하나의 거대한 쿼리 문자열입니다. 이름 / 값 쌍은 앰퍼샌드 (&)로 구분되고 이름은 등호 (=)로 값과 구분됩니다. 이에 대한 예는 다음과 같습니다.
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
콘텐츠 형식 "응용 프로그램 / 형식-urlencoded로는 X-www가" 비 ASCII 문자가 포함 된 이진 데이터 나 텍스트의 많은 양을 전송하는 비효율적이다. 컨텐츠 유형 "multipart / form-data"는 파일, 비 ASCII 데이터 및 2 진 데이터를 포함하는 양식을 제출하는 데 사용해야합니다.
다음은 Postman이 요청에서 전달한 원시 텍스트를 확인하기위한 보충 예제입니다. Postman 콘솔을 열어서이를 확인할 수 있습니다.
양식 데이터
헤더
content-type: multipart/form-data; boundary=--------------------------590299136414163472038474
신체
key1=value1key2=value2
x-www-form-urlencoded
헤더
Content-Type: application/x-www-form-urlencoded
신체
key1=value1&key2=value2
원시 텍스트 / 일반
헤더
Content-Type: text/plain
신체
This is some text.
원시 JSON
헤더
Content-Type: application/json
신체
{"key1":"value1","key2":"value2"}
'Programing' 카테고리의 다른 글
경고 : API 'variant.getJavaCompile ()'은 더 이상 사용되지 않으며 'variant.getJavaCompileProvider ()'로 대체되었습니다. (0) | 2020.05.19 |
---|---|
cbegin / cend의 이유는 무엇입니까? (0) | 2020.05.19 |
Rust에서 명시적인 수명이 필요한 이유는 무엇입니까? (0) | 2020.05.19 |
파이썬에서 최소 플러그인 아키텍처 구축 (0) | 2020.05.19 |
SQL WITH 절 예 (0) | 2020.05.19 |