답변:
올바르게 알 수 있듯이 Accept 헤더 는 HTTP 클라이언트가 서버에 허용 할 컨텐츠 유형을 알리기 위해 사용됩니다. 그런 다음 서버는 응답을 다시 보냅니다. 응답에는 클라이언트에게 반환 된 컨텐츠의 컨텐츠 유형이 무엇인지 알려주는 Content-Type 헤더 가 포함됩니다 .
그러나 알다시피 HTTP 요청 에는 Content-Type 헤더 도 포함될 수 있습니다 . 왜? POST 또는 PUT 요청 에 대해 생각해보십시오 . 이러한 요청 유형을 사용하면 클라이언트는 실제로 요청의 일부로 서버에 많은 데이터를 전송하고 있으며 Content-Type 헤더는 서버에 데이터가 실제로 무엇인지 알려주므로 서버가 구문 분석하는 방법을 결정합니다.
특히 HTML 양식 제출로 인한 POST 요청의 경우 요청의 Content-Type은 일반적으로 태그 의 속성에 지정된대로 표준 양식 컨텐츠 유형 중 하나입니다 .enctype
<form>
application/x-www-form-urlencoded
(소량의 간단한 ASCII 텍스트에 대한 기본, 이전, 단순, 약간 적은 오버 헤드, 파일 업로드 지원 없음)multipart/form-data
(최신, 파일 업로드 지원 추가, 대량의 이진 데이터 또는 비 ASCII 텍스트에 대한 효율성 향상)수락은
여기 내 요청이 있으며이 응답 형식을 수락하고 싶습니다.
내용 유형은
여기 내 요청 (또는 응답)이 있으며이 (Content-Type)은 요청 (또는 응답)으로 보내는 내용의 형식입니다.
요청-응답 대화이므로 클라이언트
Accept request HTTP 헤더는 클라이언트가 이해할 수있는 컨텐츠 유형을 MIME 유형으로 표시합니다. 컨텐츠 협상을 사용하여 서버는 제안 중 하나를 선택하여 사용하고 클라이언트에게 컨텐츠 유형 응답 헤더를 사용하여 선택한 것을 알립니다. 브라우저는 요청이 수행되는 컨텍스트에 따라이 헤더에 적절한 값을 설정합니다. CSS 스타일 시트를 가져올 때 이미지, 비디오 또는 스크립트를 가져올 때와 다른 값이 요청에 설정됩니다.
Content-Type 엔터티 헤더는 리소스의 미디어 유형을 나타내는 데 사용됩니다.
응답에서 Content-Type 헤더는 클라이언트에게 반환 된 컨텐츠의 컨텐츠 유형이 실제로 무엇인지 알려줍니다. 브라우저는 경우에 따라 MIME 스니핑을 수행하며이 헤더의 값을 반드시 따를 필요는 없습니다. 이 동작을 방지하기 위해 헤더 X-Content-Type-Options를 nosniff로 설정할 수 있습니다.
요청 (예 : POST 또는 PUT)에서 클라이언트는 실제로 어떤 유형의 데이터가 전송되는지 서버에 알려줍니다.