웹 서비스 테스트에 Postman Chrome 확장 프로그램을 사용하고 있습니다.
데이터 입력에 사용할 수있는 세 가지 옵션이 있습니다.
raw
JSON을 보내는 것 같습니다 .
어떤 다른 둘 사이의 차이는, form-data
그리고 x-www-form-urlencoded
?
웹 서비스 테스트에 Postman Chrome 확장 프로그램을 사용하고 있습니다.
데이터 입력에 사용할 수있는 세 가지 옵션이 있습니다.
raw
JSON을 보내는 것 같습니다 .
어떤 다른 둘 사이의 차이는, form-data
그리고 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 상태이기도합니다.
Content-Type: application/json
? 및 원시 데이터는 같은 JSON로 입력 {foo: bar}
동일한 가진 Content-Type: application/json
헤더?
멀티 파트 / 폼 데이터
노트. 이전 버전과의 호환성 문제, "멀티 파트 / 양식 데이터"와 기타 콘텐츠 유형 간의 관계, 성능 문제 등 파일 업로드에 대한 추가 정보는 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
헤더
Content-Type: application/x-www-form-urlencoded
몸
key1=value1&key2=value2
헤더
Content-Type: text/plain
몸
This is some text.
헤더
Content-Type: application/json
몸
{"key1":"value1","key2":"value2"}
binary
.