Content-Type
HTTP 요청에 전달하기 전에 헤더 값 을 확인해야합니다 .
가능한 모든 값에 대한 특정 목록이 Content-Type
있습니까?
그렇지 않으면 HTTP 요청에서 콘텐츠 유형을 사용하기 전에 유효성을 검사하는 방법이 있습니까?
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-
에 자체 정의 된 일종의 헤더가 포함 되어 있음을 알 수 있습니다. 유형을 확인할 때 이것을 명심하십시오.
jaxrs 또는 다른 것을 사용하는 경우 요청을 보내기 전에 mediatype.User 인터셉터라는 클래스가 있으며이를 비교하십시오.