http 멀티 파트 요청이란 무엇입니까?


300

나는 한동안 iPhone 응용 프로그램을 작성하여 서버에 데이터를 보내고 HTTP 프로토콜을 통해 데이터를 너무 많이 생각하지 않고 데이터를 수신했습니다. 주로 이론적으로 프로세스에 익숙하지만, 익숙하지 않은 부분은 HTTP 멀티 파트 요청입니다. 나는 기본적인 구조를 알고 있지만, 그 핵심은 나를 피하기 어렵다.

사진, 음악과 같은 일반 텍스트와 다른 것을 보낼 때마다 여러 부분으로 된 요청을 사용해야합니다. 누군가 왜 그것이 사용되는지와 그 장점이 무엇인지 간략하게 설명 할 수 있습니까?

내가 그것을 사용한다면 왜 그런 식으로 사진을 보내는 것이 좋은가?


1
자세한 내용은 다음 링크를 참조하십시오. http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2
zargarf 2016

답변:


286

HTTP 멀티 파트 요청은 HTTP 클라이언트가 파일과 데이터를 HTTP 서버로 보내도록 구성하는 HTTP 요청입니다. 브라우저와 HTTP 클라이언트가 파일을 서버에 업로드하기 위해 일반적으로 사용합니다.


4
다중 파트 양식 데이터 필드가 순서대로 전송 되도록 추가하고 싶었 습니다 . 이것은 바로의 내가 여기 링크 목록에 추가 obvious-- 일이 아니다 : github.com/balderdashy/skipper/blob/master/...을 내가 함께 PhantomJS / 웹킷을 사용하여 테스트 케이스를 넣어 약간의 시간을 얻을 경우에, 나는 추가 할 것 링크도 있습니다. 브라우저는 IE6에 이르기까지 사양의이 부분을 준수합니다.
mikermcneil

88
어려운 부분은 파일 업로드 요청 과 같이 더 분명한 것이 아니라 왜 multipart request 라고 불리는 지 이해 하는 것 입니다.
Rafael Eyng

28
OP는 철학적 접근과 답변을 원했습니다. 이 답변은 "왜"부분을 설명하지 않습니다. "무엇"부분에 대한 자세한 내용입니다. 나는 downvoting의 열렬한 팬이 아니지만이 답변이 OP가 원했던 것이 아니며 내가 찾은 것이라고 주장합니다.
Saeed Neamati

6
"application / x-www-form-urlencoded"컨텐츠 유형은 비 ASCII 문자를 포함하는 대량의 2 진 데이터 또는 텍스트를 전송하는 데 비효율적입니다. 컨텐츠 유형 "multipart / form-data"는 파일, 비 ASCII 데이터 및 2 진 데이터를 포함하는 양식을 제출하는 데 사용해야합니다. 원본 소스 - w3.org/TR/html401/interact/forms.html#h-17.13.4.2
아 디트 가르 왈

2
firebug 스크린 샷에 대한 자세한 내용은 여기를 참조하십시오 : cubicrace.com/2016/05/upload-files-https-using-java.html
Piyush Chordia

22

공식 사양 ( https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html )에 따르면 " 하나 이상의 다른 데이터 집합이 단일 본문에 결합되어 있습니다 ". 따라서 사진과 음악이 질문에서 언급 한 것처럼 다중 부분 메시지로 처리 될 때 아마도 일반 텍스트 메타 데이터가있을 수 있으므로 다른 유형의 데이터 (이진, 텍스트)를 포함하여 요청하면 다중 부분의 사용을 의미합니다.


2
나는 그것이 사실이라고 생각하지 않습니다. 이미지를 업로드 할 때, (메타 데이터를 포함) 전체 이미지가 될 것이다 하나 개 요청 본문의 데이터 세트. 본문에 한 부분 만 있어도 여전히 여러 부분으로 이루어진 요청입니다. 한 번에 여러 파일을 업로드하라는 요청을 작성할 수도 있습니다.
Dario Seidl

1
@DarioSeidl 표준은 파일 업로드 자체 외에 다른 데이터 필드를 포함 할 수있는 웹 양식에서 파일 업로드를 제출할 수 있다고 가정합니다. 예를 들어, 원래 파일 이름 외에도 사용자가 설명을 포함 할 수 있습니다. 또한 Multipart는 특정 시작 "파일"개념과 연결이 끊긴 일반 이진 Blob을 처리합니다.
Ionoclast Brigham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.