iOS) multipart/form-data 이해하기
2022. 1. 25. 20:28ㆍiOS/iOS
728x90
반응형
http(request와 response)는 아래의 네개로 나뉘는데,
1) Request Line
2) HTTP Header
3) Empty Line
4) Message Body
message body에 들어가는 데이터 타입을 HTTP Header에 명시해줄 수 있습니다.
이 필드가 바로 Content-type
이 Content-type필드에 밈타입(multipurpose internet mail extensions)을 적어줄 수 있는데,
그 여러 타입들 중 하나가 multipart입니다.
* 브라우저들은 리소스를 내려받았을때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용합니다.
밈타입?
MIME은 다목적 인터넷 메일 확장이란 뜻으로 전자우편의 데이터 형식을 정의한 표준 포맷입니다
전자우편은 7비트 ASCII 코드를 사용하여 전송되기 때문에 문자 데이터 이외의 바이너리 데이터(이미지, 동영상, MS 워드같은 문서 등)를 전송할 수 없었습니다.
때문에 여러 멀티미디어 데이터들의 바이너리 데이터를 ASCII코드로 변환하는 방법(인코딩)과 미디어 종류를 MIME 타입 목록으로 정의 하였고, MIME 사양에 따라 멀티미디어 파일의 데이터를 ASCII 데이터로 변환 후 전송하였습니다.
이때 송신측에서는 전송 ASCII 데이터가 원래는 어떤 형식의 파일이었는지 MIME 타입을 기록하여 전송하는데 수신측에서는 해당 MIME 타입을 참고하여 수신한 ASCII 데이터를 원래의 멀티미디어 바이너리로 변환하여 해석합니다.
이렇게 하면 ASCII 데이터만 전송할 수 있는 인터넷 메일의 한계를 극복함과 동시에 여러가지 타입의 멀티미디어 데이터를 주고 받을 수 있습니다.
1, 2 송신자는 바이너리 데이터인 이미지 파일 aaa.png를 MIME사양에 맞게 ASCII코드로 인코딩합니다.
3 인코딩된 이미지 데이터를 수신자에게 전송합니다.
4, 5 수신자는 인코딩된 이미지 데이터를 mime type image/png의 사양에 맞게 다시 aaa.png 바이너리 데이터로 디코딩합니다.
인코딩 : 컴퓨터에서 인코딩은 동영상이나 문자 인코딩 뿐 아니라 사람이 인지할 수 있는 형태의 데이터를 약속된 규칙에 의해,
컴퓨터가 사용하는 0과 1로 변환하는 과정을 통틀어 말합니다.(컴퓨터가 이해할 수 있는 언어로 바꿔줌)
디코딩 : 코드를 사람이 이해할 수 있는 문자로 바꿔주는것
아스키코드 : 영문 알파벳을 사용하는 대표적인 문자 인코딩
더 자세한 내용은
https://lena-chamna.netlify.app/post/http_multipart_form-data/
https://dololak.tistory.com/130
728x90
반응형