Content-Disposition
클라이언트에 파일 처리에 대한 디렉션 제공하는 header
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
x-www-form-urlencoded vs Multipart/form-data
https://velog.io/@ksmfou98/HTTP-%ED%8F%BC%EA%B3%BC-%ED%8C%8C%EC%9D%BC-%EC%A0%84%EC%86%A1-x-www-form-urlencoded-Multipartform-data
curl -X POST https://example.com/api \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key1=value1&key2=value2"
curl -X POST https://example.com/api \
-H "Content-Type: multipart/form-data" \
-F "key1=value1" \
-F "file1=@path/to/file"
Why do we use Binary File?
https://m.blog.naver.com/tipsware/221353023593
MIME types (Content-Type) & application/octet-stream
일반적인 경우 MIME types 존재, 파일 메타데이터에서 추출하거나, S3, Blob 등 스토리지 시스템 api로 추출가능. 대응되는 MIME Type 없거나 특정하고싶지 않은 경우 application/octet-stream 사용.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
api response로 파일을 보내는 법
<embed src="data:application/pdf;base64,JVBERi0xLjcKCjQgMCBvYmoKPDwvTGluZWFyaXplZCAxL0wgMzI3ODgvTyAxNi9FIDE2NTgvTiAyL1QgMzA3MjQvSCBbIDM3OCAyM10vSCBbIDExODkgMzI5XS9JMiAxMDAgMDAwMDAwMDAgMDAwMDAgMCBuI+Etc3dhZ2dlci4x...<rest_of_base64_string>" width="600" height="400" type="application/pdf">
Http Content Headers
https://gmlwjd9405.github.io/2019/01/28/http-header-types.html
Apache POI(xsl), OpenCSV(csv)
utf-bom, utf
https://mkyong.com/java/java-how-to-add-and-remove-bom-from-utf-8-file/
*. 기타