콘텐츠 유형을 배우려면 그것이 무엇인지, 그것이 무엇인지 미리 알아야합니다.
HTTP 프로토콜 (RFC2616)은 요청/응답 모델을 채택합니다. 클라이언트는 요청을 서버로 보내고 요청 헤더에는 요청 된 메소드, URI, 프로토콜 버전 및 요청 수정 자, 클라이언트 정보 및 컨텐츠가 포함 된 MIME와 같은 메시지 구조가 포함됩니다. 서버는 상태 라인으로 응답하며 해당 콘텐츠에는 메시지 프로토콜 버전, 성공 또는 오류 인코딩 및 서버 정보, 엔티티 메타 정보 및 가능한 엔티티 컨텐츠가 포함됩니다.
일반적으로 HTTP 메시지는 출발 선, 하나 이상의 헤더 필드, 헤더 필드로 끝나는 빈 줄 및 선택적인 메시지 본문으로 구성됩니다. HTTP의 헤더 필드에는 일반 헤더, 요청 헤더, 응답 헤더 및 엔티티 헤더의 네 가지 부분이 포함됩니다. 각 헤더 필드는 도메인 이름, 콜론 (:) 및 도메인 값의 세 부분으로 구성됩니다. 도메인 이름은 케이스 독립적이며 도메인 값 전에 수많은 공간 문자를 추가 할 수 있으며, 각 줄의 시작 부분에서 하나 이상의 공간 또는 탭 문자를 사용하여 헤더 필드를 여러 줄로 확장 할 수 있습니다.
요청 메시지와 응답 메시지에는 일반적으로 엔티티 헤더 필드 및 엔티티로 구성된 엔티티 정보가 포함될 수 있습니다. 엔티티 헤더 필드에는 엔티티에 대한 원본 정보가 포함되어 있습니다. 엔티티 헤더에는 허용, 컨텐츠 기반, 컨텐츠 인코딩, 컨텐츠 언어, 컨텐츠 길이, 컨텐츠 -MD5, 컨텐츠 범위, 컨텐츠 유형, ETAG, 만료, 최후의 수정 및 확장 제도가 포함됩니다.
Content-Type는 반환 메시지에서 매우 중요한 컨텐츠이며, 후속 문서가 속하는 MIME 유형을 나타냅니다. 내용 유형 : [유형]/[하위 유형]; 매개 변수. 예를 들어, 가장 일반적인 것은 텍스트/html입니다. 즉, 반환 된 컨텐츠는 텍스트 유형이고 텍스트는 HTML 형식입니다. 원칙적으로 브라우저는 컨텐츠 유형을 기반으로 반환 된 메시지 본문 내용을 표시하는 방법을 결정합니다.
유형은 다음 형식을 가지고 있습니다텍스트 : 표준화 된 표현을위한 텍스트 정보, 문자 메시지는 여러 문자 세트 또는 여러 형식 일 수 있습니다.
멀티 파트 : 메시지 본문의 여러 부분을 연결하여 메시지를 형성하는 데 사용되며 이러한 부분은 다른 유형의 데이터가 될 수 있습니다.
응용 프로그램 : 응용 프로그램 데이터 또는 이진 데이터를 전송하는 데 사용됩니다.
메시지 : 이메일 메시지를 래핑하는 데 사용됩니다.
이미지 : 정적 이미지 데이터를 전송하는 데 사용됩니다.
오디오 : 오디오 또는 오디오 데이터를 전송하는 데 사용됩니다.
비디오 : 오디오로 편집 한 비디오 데이터 형식 일 수있는 동적 이미지 데이터를 전송하는 데 사용됩니다.
하위 유형은 상세한 형식의 유형을 지정하는 데 사용됩니다. 컨텐츠 유형/하위 유형 쌍 세트와 이와 관련된 매개 변수는 시간이 지남에 따라 커집니다. 이러한 값이 질서 및 공공 상태로 개발되도록하기 위해 MIME는 인터넷 지정된 숫자 기관 (IANA)을 중앙 등록 메커니즘으로 사용하여 이러한 값을 관리합니다.
이 매개 변수는 추가 정보를 지정하는 데 사용될 수 있으며, 더 많은 경우 텍스트/일반 및 텍스트/HTM과 같은 텍스트 인코딩 메소드를 지정하는 데 사용되는 Charset 매개 변수입니다. Mime은 유형을 기준으로 기본 하위 유형을 설정했습니다. 클라이언트가 메시지의 하위 유형을 결정할 수없는 경우 메시지는 처리를위한 기본 하위 유형으로 취급됩니다. 텍스트는 기본적으로 텍스트/평원이며, 응용 프로그램은 기본적으로 응용 프로그램/옥켓 스트림이며, 멀티 파트는 기본적으로 멀티 파트/혼합으로 간주됩니다. IE6 브라우저의 경우 컨텐츠 유형의 유형이 실제 메시지 신체 유형과 일치하지 않으면 컨텐츠 유형을 기반으로 해야하는 유형을 분석하고 컨텐츠 유형에 작성된 내용에 관계없이 JPG 및 GIF와 같은 일반적인 이미지 형식을 올바르게 식별 할 수 있습니다.
컨텐츠 유형에 지정된 유형이 브라우저가 직접 열 수있는 유형 인 경우 브라우저가 콘텐츠를 열고 표시합니다. 다른 응용 프로그램과 관련된 유형 인 경우 레지스트리 에서이 유형의 등록 상태를 찾아야합니다. 묻지 않고 직접 열 수있는 경우 관련 응용 프로그램은 파일을 열도록 호출되지만 직접 열리지 않으면이를 열지 여부를 묻습니다. 응용 프로그램과 관련이없는 유형의 경우 IE 브라우저는 어떻게 열어야하는지 모르고 IE6은 XML로 열려고합니다.
파일 다운로드를 구현하려면 http의 헤더에 추가 할 수 있습니다.fprintf (파일, 컨텐츠-방향 : 첨부 파일; filename =/%s//r/n, filename);
테스트 후 HTML, PDF, GIF 및 웹 페이지에서 열린 기타 파일은 정상적으로 다운로드 할 수 있습니다.
'HQX'=> 'Application/Mac-BinHex40',
'CPT'=> 'Application/Mac-CompactPro',
'doc'=> '응용 프로그램/msword',
'bin'=> 'Application/Octet-stream',
'dms'=> '응용 프로그램/Octet-stream',
'LHA'=> '응용 프로그램/Octet-stream',
'lzh'=> 'Application/Octet-stream',
'exe'=> 'Application/Octet-stream',
'class'=> '응용 프로그램/Octet-stream',
'so'=> 'Application/Octet-stream',
'dll'=> 'Application/Octet-stream',
'Oda'=> 'Application/Oda',
'pdf'=> '응용 프로그램/pdf',
'ai'=> 'application/postscript',
'eps'=> 'application/postscript',
'ps'=> '응용 프로그램/postscript',
'smi'=> '응용 프로그램/smil',
'smil'=> '응용 프로그램/smil',
'mif'=> '응용 프로그램/vnd.mif',
'xls'=> '응용 프로그램/vnd.ms-excel',
'ppt'=> '응용 프로그램/vnd.ms-powerpoint',
'wbxml'=> '응용 프로그램/vnd.wap.wbxml',
'wmlc'=> '응용 프로그램/vnd.wap.wmlc',
'wmlsc'=> '응용 프로그램/vnd.wap.wmlscriptc',
'bcpio'=> '응용 프로그램/x-bcpio',
'vcd'=> '응용 프로그램/x-cdlink',
'pgn'=> 'Application/x-Chess-Pgn',
'cpio'=> '응용 프로그램/x-cpio',
'csh'=> 'application/x-csh',
'DCR'=> 'Application/X-Director',
'dir'=> 'Application/X-Director',
'dxr'=> 'Application/X-Director',
'dvi'=> 'application/x-dvi',
'spl'=> 'Application/x-futuresplash',
'gtar'=> '응용 프로그램/x-gtar',
'hdf'=> '응용 프로그램/x-hdf',
'js'=> 'Application/X-JavaScript',
'skp'=> 'application/x-koan',
'skd'=> 'application/x-koan',
'skt'=> '응용 프로그램/x-koan',
'skm'=> 'application/x-koan',
'라텍스'=> '응용 프로그램/x-latex',
'nc'=> '응용 프로그램/x-netcdf',
'cdf'=> 'application/x-netcdf',
'sh'=> 'application/x-sh',
'shar'=> 'application/x-shar',
'swf'=> 'application/x-shockwave-flash',
'sit'=> 'application/x-stuffit',
'sv4cpio'=> '응용 프로그램/x-sv4cpio',
'sv4crc'=> '응용 프로그램/x-sv4crc',
'tar'=> '응용 프로그램/x-tar',
'tcl'=> 'application/x-tcl',
'tex'=> 'Application/x-tex',
'texinfo'=> '응용 프로그램/x-texinfo',
'texi'=> '응용 프로그램/x-texinfo',
't'=> '응용 프로그램/x-troff',
'tr'=> '응용 프로그램/x-troff',
'Roff'=> 'Application/X-Troff',
'man'=> '응용 프로그램/x-troff-man',
'me'=> '응용 프로그램/x-troff-me',
'ms'=> '응용 프로그램/x-troff-ms',
'usstar'=> 'Application/X-Usstar',
'src'=> 'Application/X-Wais-Source',
'xhtml'=> '응용 프로그램/xhtml+xml',
'xht'=> '응용 프로그램/xhtml+xml',
'zip'=> 'application/zip',
'au'=> '오디오/기본',
'snd'=> '오디오/기본',
'mid'=> 'Audio/Midi',
'midi'=> '오디오/미디',
'kar'=> '오디오/미디',
'mpga'=> 'Audio/Mpeg',
'mp2'=> '오디오/mpeg',
'mp3'=> 'Audio/Mpeg',
'aif'=> 'Audio/X-Aiff',
'aiff'=> 'Audio/X-Aiff',
'aifc'=> '오디오/x-aiff',
'm3u'=> '오디오/x-mpegurl',
'ram'=> '오디오/x-pn-realaudio',
'rm'=> '오디오/x-pn-realaudio',
'rpm'=> '오디오/x-pn-realaudio-plugin',
'ra'=> '오디오/Xearaudio',
'wav'=> '오디오/x-wav',
'pdb'=> '화학/x-pdb',
'xyz'=> '화학/x-xyz',
'bmp'=> 'image/bmp',
'gif'=> 'image/gif',
'IEF'=> 'Image/IEF',
'jpeg'=> 'image/jpeg',
'jpg'=> 'image/jpeg',
'jpe'=> 'image/jpeg',
'png'=> 'image/png',
'tiff'=> 'image/tiff',
'tif'=> 'image/tiff',
'djvu'=> 'image/vnd.djvu',
'djv'=> 'image/vnd.djvu',
'wbmp'=> 'image/vnd.wap.wbmp',
'ras'=> 'image/x-cmu-raster',
'pnm'=> 'image/x-portable-anymap',
'pbm'=> '이미지/x- 포트 가능한 비트 맵',
'pgm'=> 'image/x-portable graymap',
'ppm'=> 'image/x-portable-pixmap',
'rgb'=> 'image/xgb',
'xbm'=> 'image/x-xbitmap',
'xpm'=> 'image/x-xpixmap',
'xwd'=> '이미지/x-xwindowdump',
'igs'=> 'model/iges',
'iges'=> 'model/iges',
'msh'=> 'model/mesh',
'메쉬'=> '모델/메쉬',
'사일로'=> '모델/메쉬',
'wrl'=> 'model/vrml',
'vrml'=> 'model/vrml',
'css'=> 'text/css',
'html'=> 'text/html',
'htm'=> 'text/html',
'asc'=> 'text/plain',
'txt'=> 'text/plain',
'rtx'=> 'text/richtext',
'rtf'=> 'text/rtf',
'sgml'=> 'text/sgml',
'sgm'=> 'text/sgml',
'tsv'=> 'text/tab-separated-values',
'wml'=> 'text/vnd.wap.wml',
'wmls'=> 'text/vnd.wap.wmlscript',
'etx'=> 'text/x-setext',
'xsl'=> 'text/xml',
'xml'=> 'text/xml',
'mpeg'=> 'video/mpeg',
'mpg'=> 'video/mpeg',
'mpe'=> 'video/mpeg',
'qt'=> '비디오/Quicktime',
'mov'=> 'video/quicktime',
'mxu'=> 'video/vnd.mpegurl',
'avi'=> 'video/x-msvideo',
'movie'=> 'video/x-sgi-movie',
'Ice'=> 'x-conference/x-cooltalk',