업로드 된 파일에 확장자가없는 경우 MIME 유형을 지정해야합니까? 즉, 기본 일반 MIME 유형이 있습니까?
업로드 된 파일에 확장자가없는 경우 MIME 유형을 지정해야합니까? 즉, 기본 일반 MIME 유형이 있습니까?
답변:
application/octet-stream
알 수없는 유형에 사용할 수 있습니다.
섹션 4.5.1의 RFC 2046 상태 :
"옥텟 스트림"하위 유형은 본문에 임의의 이진 데이터가 포함되어 있음을 나타내는 데 사용됩니다.
application/octet-stream
파일을 실행할 수 있다고 가정 할 이유가 없습니다 . 브라우저 가 실행 파일을 고의로 다운로드 하더라도 사용자의 요청없이 "실행 가능"하지는 않습니다. 실행 파일을 다운로드한다고해서 지금 실행하고 싶다는 의미는 아닙니다. application/octet-stream
다운로드시 자동으로 파일을 실행할 수있는 브라우저가 있는 경우 동작을 재현하는 방법과 방법을 알려주십시오. 지금은 당신을 믿지 않습니다.
우리는 RFC-2046 (미디어 유형) 대신 RFC-7231 (HTTP / 1.1 의미론 및 내용)을 참조로 사용해야합니다. 질문은 HTTP 내용 유형에 관한 것이기 때문입니다.
또한 RFC-2046은 알 수없는 유형을 명확하게 정의하지 않지만 RFC-7231은 명확하게 정의합니다.
알 수없는 데이터에 대해서는 MIME 유형을 보내지 마십시오.
더 명확하게 : Content-Type 헤더를 전혀 사용하지 마십시오.
RFC-7231
하이퍼 텍스트 전송 프로토콜 (HTTP / 1.1) : 시맨틱 스 및 컨텐츠
3.1.1.5. 컨텐츠 타입페이로드 본문을 포함하는 메시지를 생성하는 발신인 은 동봉 된 표현
의
의도 된 미디어 유형이
발신자 에게 알려지지 않은 경우 해당 메시지에 Content-Type 헤더 필드를 생성해야합니다 (SHOULD) .
이 섹션은 확실하지 않은 경우 제외하도록 명확하게 지시합니다. 또한 수신기가 유형이 응용 프로그램 / 옥텟 스트림이라고 가정 할 수 있지만 다른 유형 일 수도 있습니다.
RFC-2046
4.5.1. 옥텟 스트림 하위 유형
"application / octet-stream"엔티티 를 수신하는 구현에 권장되는 조치 는
컨텐츠 전송 인코딩이 실행 취소 된 상태에서 파일에 데이터를 넣거나
사용자가 지정한 입력으로 사용하는 것입니다. 방법.
그리고 이미 위에서 언급했듯이 :
RFC-7231
3.1.1.5. 컨텐츠 타입Content-Type 헤더 필드가 존재하지 않는 경우, 수신자는 미디어 유형 "application / octet-stream"
([RFC2046], 섹션 4.5.1)을 가정하거나 데이터를 검사하여 유형을 결정할 수 있습니다.
"application / octet-stream"으로 정의하면 "application / octet-stream"임을 알 수 있습니다.
당신이 그것을 정의하지 않으면 당신은 그것이 무엇인지 모르고 수신기와 수신기에 결정을 내린 다음 오리와 같이 걷는 지 확인할 수 있다고 말하고 있습니다 ...
나는 선호 application/unknown
하지만 결과는 다음과 동일합니다.application/octet-stream
application/octet-stream
또는 로 제공해야하는 이유는 무엇 application/unknown
입니까? 그들이 발명 한 이유가 image/png
있습니다.