Content-Type
HTTP 요청에 전달하기 전에 헤더 값 을 확인해야합니다 .
가능한 모든 값에 대한 특정 목록이 Content-Type
있습니까?
그렇지 않으면 HTTP 요청에서 콘텐츠 유형을 사용하기 전에 유효성을 검사하는 방법이 있습니까?
답변
모든 컨텐츠 유형은 여기에서 찾을 수 있습니다.
http://www.iana.org/assignments/media-types/media-types.xhtml
가장 일반적인 유형은 다음과 같습니다.
-
타입 응용
application/java-archive application/EDI-X12 application/EDIFACT application/javascript application/octet-stream application/ogg application/pdf application/xhtml+xml application/x-shockwave-flash application/json application/ld+json application/xml application/zip application/x-www-form-urlencoded
-
오디오 입력
audio/mpeg audio/x-ms-wma audio/vnd.rn-realaudio audio/x-wav
-
타입 이미지
image/gif image/jpeg image/png image/tiff image/vnd.microsoft.icon image/x-icon image/vnd.djvu image/svg+xml
-
멀티 파트 유형
multipart/mixed multipart/alternative multipart/related (using by MHTML (HTML mail).) multipart/form-data
-
텍스트를 입력하십시오
text/css text/csv text/html text/javascript (obsolete) text/plain text/xml
-
타입 비디오
video/mpeg video/mp4 video/quicktime video/x-ms-wmv video/x-msvideo video/x-flv video/webm
-
vnd 유형 :
application/vnd.android.package-archive application/vnd.oasis.opendocument.text application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.graphics application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.ms-powerpoint application/vnd.openxmlformats-officedocument.presentationml.presentation application/msword application/vnd.openxmlformats-officedocument.wordprocessingml.document application/vnd.mozilla.xul+xml
답변
RFC 822의 확장 BNF 표기법에서 Content-Type 헤더 필드 값은 다음과 같이 정의됩니다.
Content-Type : = 유형 “/”하위 유형 * [ “;” 파라미터]
type : = “application”/ “audio”/ “image”/ “message”/ “multipart”/ “text”/ “video”/ x-token
x-token : = <두 개의 문자 “X-“뒤에 공백이없고 토큰이 있습니다>
하위 유형 : = 토큰
매개 변수 : = 속성 “=”값
속성 : = 토큰
값 : = 토큰 / 따옴표로 묶은 문자열
토큰 : = 1 *
tspecials : = “(“/ “)”/ “<“/ “>”/ “@”; / “,”/ “;”에 있어야합니다. / “:”/ “\”/ < “>; 인용 문자열, /”/ “/”[ “/”] “/”? “/”. “; /”= “; 매개 변수 값 내에서 사용
그리고 그것을 따라갈 수있는 알려진 MIME 유형의 목록 (또는 Joe 가 IANA 소스로 언급 한대로 ).
보시다시피 목록이 너무 커서 모든 목록에 대해 유효성을 검사 할 수 없습니다. 당신이 할 수있는 일은 일반적인 형식과 type
속성 에 대해 유효성을 검사하여 그것이 올바른지 확인하고 (옵션 세트가 작음) 그 뒤에 오는 것이 정확하다고 가정하십시오 (물론 그것을 넣을 때 발생할 수있는 예외를 잡아라) 실제 사용).
또한 위의 의견을 참고하십시오.
어떤 이유로 든 다른 기본 유형을 사용하려는 경우 비표준 상태를 표시하고 향후 공식 이름과의 잠재적 충돌을 피하기 위해 “X-“로 시작하는 이름을 지정해야합니다.
많은 HTTP 요청 / 응답X-
에 자체 정의 된 일종의 헤더가 포함 되어 있음을 알 수 있습니다. 유형을 확인할 때 이것을 명심하십시오.
답변
가능한 “컨텐츠 유형”값의 하위 세트를 다루는 것을 목표로하고 있습니다. 질문은 알려진 컨텐츠 유형을 식별하는 데 집중하는 것 같습니다.
@Jeroen RFC 1341 참조는 훌륭하지만 상당히 철저한 목록을 위해 IANA는 공식적으로 등록 된 미디어 유형의 웹 페이지를 여기에 유지 합니다.
답변
jaxrs 또는 다른 것을 사용하는 경우 요청을 보내기 전에 mediatype.User 인터셉터라는 클래스가 있으며이를 비교하십시오.