[http] HTTP“Content-Type”헤더에 가능한 모든 값은 무엇입니까?

Content-TypeHTTP 요청에 전달하기 전에 헤더 값 을 확인해야합니다 .

가능한 모든 값에 대한 특정 목록이 Content-Type있습니까?

그렇지 않으면 HTTP 요청에서 콘텐츠 유형을 사용하기 전에 유효성을 검사하는 방법이 있습니까?



답변

모든 컨텐츠 유형은 여기에서 찾을 수 있습니다.
http://www.iana.org/assignments/media-types/media-types.xhtml

가장 일반적인 유형은 다음과 같습니다.

  1. 타입 응용

    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
    
  2. 오디오 입력

    audio/mpeg
    audio/x-ms-wma
    audio/vnd.rn-realaudio
    audio/x-wav
    
  3. 타입 이미지

    image/gif
    image/jpeg
    image/png
    image/tiff
    image/vnd.microsoft.icon
    image/x-icon
    image/vnd.djvu
    image/svg+xml
    
  4. 멀티 파트 유형

    multipart/mixed
    multipart/alternative
    multipart/related (using by MHTML (HTML mail).)
    multipart/form-data
    
  5. 텍스트를 입력하십시오

    text/css
    text/csv
    text/html
    text/javascript (obsolete)
    text/plain
    text/xml
    
  6. 타입 비디오

    video/mpeg
    video/mp4
    video/quicktime
    video/x-ms-wmv
    video/x-msvideo
    video/x-flv
    video/webm
    
  7. 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 1341 :

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 인터셉터라는 클래스가 있으며이를 비교하십시오.


답변