6월, 2022의 게시물 표시

HTTP multipart/form-data 이해하기

이미지
HTTP multipart/form-data HTTP란? 클라이언트 → 서버 파일 업로드하는 과정과 원리 이해하기 HTTP 메세지 구성과 multipart MIME에서의 multipart & multipart/form-data 파일 업로드할 때 알아야하는 HTTP 규약 HTTP multipart/form-data 먼저  HTTP ,  multipart ,  multipart/form-data  세 가지 키워드에 대해 알아봅시다. HTTP란? HTTP(HyperText Transfer Protocol) 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약. (From  Tech Interview ) 클라이언트 → 서버 파일 업로드하는 과정 이해하기 파일 업로드를 구현할 때, 클라이언트가 웹브라우저라면 폼을 통해서 파일을 등록해서 전송하게 됩니다. 이때 웹 브라우저가 보내는  HTTP 메시지는 Content-Type 속성이  multipart/form-data >로 지정 되며, 정해진 형식에 따라  메시지를 인코딩 하여 전송합니다. 이를 처리하기 위한 서버는  멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 됩니다.  (From  Wireframe ) 이미지 파일을 전송한다고 해서 이메일에 첨부파일을 붙여 메일을 보내는 것처럼 png나 jpg 파일 자체가 전송되는 것이 아닙니다. 이미지 파일도 문자로 이뤄져 있기 때문에 이미지 파일을 스펙에 맞게 문자로 생성하여 HTTP request body에 담아 서버로 전송하는 것입니다. HTTP(request와 response) 는 간단하게 위 이미지와 같이 4개의 파트로 나눌 수 있습니다.  여기서 Message Body에 들어가는 데이터 타입을 HTTP Header에 명시해줄 수 있습니다 . 이 때 명시할 수 있도록 해주는 필드가 바로 Content-type입니다. 추가적으로 Content-type 필드에  MIME(Multipurpose Internet Mail E