728x90
반응형
질문 : HTTP 파일 업로드는 어떻게 작동합니까?
파일이 첨부 된 다음과 같은 간단한 양식을 제출할 때 :
<form enctype="multipart/form-data" action="http://localhost:3000/upload?upload_progress_id=12344" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
내부적으로 파일을 어떻게 전송합니까? 파일이 HTTP 본문의 일부로 데이터로 전송됩니까? 이 요청의 헤더에 파일 이름과 관련된 내용이 없습니다.
파일을 보낼 때 HTTP의 내부 작동을 알고 싶습니다.
반응형
답변
파일을 선택하고 양식을 제출할 때 어떤 일이 발생하는지 살펴 보겠습니다 (간결하게하기 위해 헤더를 잘랐습니다).
POST /upload?upload_progress_id=12344 HTTP/1.1
Host: localhost:3000
Content-Length: 1325
Origin: http://localhost:3000
... other headers ...
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryePkpFF7tjBAqx29L
------WebKitFormBoundaryePkpFF7tjBAqx29L
Content-Disposition: form-data; name="MAX_FILE_SIZE"
100000
------WebKitFormBoundaryePkpFF7tjBAqx29L
Content-Disposition: form-data; name="uploadedfile"; filename="hello.o"
Content-Type: application/x-object
... contents of file goes here ...
------WebKitFormBoundaryePkpFF7tjBAqx29L--
참고 : 각 경계 문자열을 추가로 시작해야한다 --
단지 마지막 경계 문자열의 끝처럼. 위의 예에는 이미이 내용이 포함되어 있지만 놓치기 쉽습니다. 아래 @Andreas의 의견을 참조하십시오.
양식 매개 변수를 인코딩하는 URL 대신 양식 매개 변수 (파일 데이터 포함)가 요청 본문에있는 다중 부분 문서의 섹션으로 전송됩니다.
위의 예에서는 파일 데이터가 포함 된 섹션뿐만 아니라 양식에 설정된 값이 MAX_FILE_SIZE
파일 이름은 Content-Disposition
헤더의 일부입니다.
자세한 내용은 여기에 있습니다 .
출처 : https://stackoverflow.com/questions/8659808/how-does-http-file-upload-work
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
[스위프트] 문자열 유형으로 enumerate을 enum하는 방법 (0) | 2021.07.27 |
---|---|
equal, eql, ===, ==의 차이점 (0) | 2021.07.23 |
프로젝트에서 CocoaPods를 제거하는 방법 (0) | 2021.07.22 |
YAML과 JSON의 차이점에 대해서 (0) | 2021.07.21 |
O (log n)가 의미하는 것 (0) | 2021.07.21 |