multipart file array 표현하는 방식의 표준이 있나요?
325
작성한 질문수 4
김영한님 안녕하세요?
딱 필요했던 정보를 재밌고 알차게 정리해주셔서 HTTP 강의 즐겁게 보고 있습니다 :)
제가 영한님의 HTTP 강의를 들어야겠다고 다짐하게 된 에피소드가 있는데요,
네트워크 통신 관련하여 백그라운드가 얕아서 인터넷에 검색해봐도 원하는 결과를 찾지 못했습니다.
관련하여 조언이나 힌트를 얻고자 질문 드립니다.
글 읽어주셔서 미리 감사드리고, 답변 주신다면 도움이 많이 될 것 같습니다!
---
Flutter 클라이언트에서 네트워크 통신을 위해 `DIO`라는 라이브러리를 사용하고 있는데, 해당 라이브러리에서 multipart 필드가 array면 필드명(ex:files)에 '[]'를 추가하여(ex:files[]) 하여 서버로 통신하고 있습니다. 해당 라이브러리의 설명으로는 대부분의 백엔드 서버에서 필드명에 []를 붙이지 않으면 multipart file array를 인식하지 못하기 때문에 편의(?)를 위해 이런 내부 동작이 있는 것 같습니다. https://pub.dev/packages/dio#multiple-files-upload
// Flutter 클라이언트 샘플 코드
FormData.fromMap({
"files": [
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
]
});
클라이언트에서 files라고 필드를 정의해도, 서버에서 확인해보면 files[]라고 보내고 있습니다 :)
사실 네트워크 통신 시 필드명에 배열을 표현하는 방식은 언어마다 다양한 것 같은데, 클라이언트에서 사용하는 네트워크 라이브러리에서 배열 표현에 `[]`를 붙이는 걸 보면 제법(?) 강력한 표준인 게 아닐까 추측하고 있습니다.
서버에서는 'files'로 보내도 multipart file 배열을 인식할 수 있지만, 그래도 multipart 필드명에 []를 붙여두었습니다. files => files[]
혹시 관련된 표준 내용을 확인하려면 어디서 알아봐야할까요?
이게 일반적인 표준이긴 한가요?
---
제가 아직 챕터 2까지 밖에 안들어서 강의 내용에 있는데도 성급하게 질문 드린것이라면 죄송합니다^^;
답변 1
캐시 관련 질문입니다.
0
623
1
ETag 질문입니다.
0
734
1
캐시의 설정 주체
0
536
1
영속쿠키 질문입니다.
0
509
1
협상(accept-language)
0
691
1
에러 코드의 구현 주체
0
442
1
웹서버가 구현?
0
598
1
필수헤더?
1
563
1
Host와 Port
0
779
1
다른 도메인이 같은 포트를 사용하는 경우
0
1263
1
표준 헤더와 임의 헤더
0
537
1
POST 등록 후 Location 헤더
0
574
1
프로세스의 상태가 변경되는 경우에 Post 사용
1
1812
1
지속연결에 대해서.
0
695
1
제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.
0
596
1
캐시 내용중 no cache 일때
0
364
1
DNS 서버 관련 질문
1
753
1
캐시로 저장된 파일의 유효기간은 얼마나 되나요?
0
665
1
웹브라우저 요청흐름 질문입니다.
0
852
1
캐시 무효화 질문드립니다
0
564
1
리다이렉트와 리다이렉션 차이?
0
2621
1
쿠키 및 세션 관련 질문드립니다
0
589
1
HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.
0
1651
1
header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?
0
482
1





