programing

헤더('Content-Type:text/plain')가 꼭 필요합니까?

prostudy 2022. 9. 13. 21:37
반응형

헤더('Content-Type:text/plain')가 꼭 필요합니까?

이 헤드 정보가 있든 없든 저는 아직 차이를 보지 못했습니다.

"필요"를 정의합니다.

브라우저가 파일 유형을 알 수 있도록 하려면 이 기능이 필요합니다.PHP가 자동으로 설정한다.Content-Type header header header header header header 。text/html브라우저가 HTML을 포함하지 않는 HTML 파일로 처리하도록 덮어쓰지 않으면 출력에 HTML이 포함되어 있으면 매우 다른 결과를 볼 수 있습니다.다음 중 하나:

<b><i>test</i></b>

Content-Type: text/html; charset=UTF-8는 브라우저 글씨로됩니다.이탤릭체로 표시됩니다.

✅ OK (확인)

, 「」입니다.Content-Type: text/plain; charset=UTF-8브라우저에는 다음과 같이 표시됩니다.

<b><i>✅ OK</i></b>

TLDR 버전:다음과 같은 특수 문자를 사용하지 않고 일반 텍스트만 출력하는 경우< ★★★★★★★★★★★★★★★★★」>그건 중요하지 않지만, 그건 틀렸어.

는 Content-Type PHP Content-Type을 합니다.text/html은, 「이러다」와 .text/plain왜 차이가 없는지 설명해주죠

text/plaincontent-type을 포함)를 그대로 합니다.< ★★★★★★★★★★★★★★★★★」>★★★★★★★★★★★★★★★★★★」

예:

header("Content-Type: text/plain");
echo "<b>hello world</b>";
// Displays in the browser: <b>hello world</b>

header("Content-Type: text/html");
echo "<b>hello world</b>";
// Displays in the browser with bold font: hello world

보내는 데이터의 유형을 브라우저에 알려주는 것이 매우 중요합니다.차이는 분명해야 한다.브라우저에서 다음 PHP 파일의 출력을 확인해 보십시오.

<?php
header('Content-Type:text/html; charset=UTF-8');
?>
<p>Hello</p>

다음과 같이 표시됩니다.

안녕

(이 경우 헤더 행을 놓쳐도 같은 결과를 얻을 수 있다는 점에 유의하십시오.텍스트/메모리는 php의 기본값입니다.)

텍스트/보통으로 변경

<?php
header('Content-Type:text/plain; charset=UTF-8');
?>
<p>Hello</p>

다음과 같이 표시됩니다.

<p> 안녕하세요 </p>

이게 왜 중요하죠?예를 들어 ajax 요청에 의해 사용되는 다음과 같은 php 스크립트가 있는 경우:

<?php
header('Content-Type:text/html; charset=UTF-8');
print "Your name is " . $_GET['name']

다른 사용자는 자신의 사이트에 http://example.com/test.php?name=%3Cscript%20src=%22http://example.com/eviljs%22%3E%3C/script%3E과 같은 URL에 대한 링크를 추가할 수 있으며, 사용자가 링크를 클릭하면 링크의 모든 사용자에게 해당 사이트의 모든 정보가 노출됩니다.파일을 텍스트/일반으로 제공하면 안전합니다.

이는 어리석은 예이므로 공격자가 데이터베이스 필드에 잘못된 스크립트 태그를 추가하거나 폼 제출을 사용하여 추가할 가능성이 높습니다.

Content-Type 헤더를 설정하면 웹 브라우저가 콘텐츠를 처리하는 방법에 영향을 미칩니다.대부분의 메인스트림 웹 브라우저가 텍스트/플레인 콘텐츠 유형을 발견하면 브라우저 창에 원시 텍스트 소스를 렌더링합니다(HTML에서 렌더링되는 원본이 아니라). 이것이 보는 것과 보는 것의 차이입니다.

<b>foo</b>

또는

후우

또, 를 사용하는 경우XMLHttpRequest오브젝트, Content-Type 헤더는 브라우저가 반환된 결과를 시리얼화하는 방법에 영향을 줍니다.jQuery 및 프로토타입과 같은 AJAX 프레임워크가 인수되기 전에는 AJAX 응답의 일반적인 문제는 Content-Type이 text/xml이 아닌 text/html로 설정된다는 것이었습니다.Content-Type이 text/plain인 경우에도 동일한 문제가 발생할 수 있습니다.

204: No Content HTTP 상태로 요청에 응답한다고 가정합니다.Firefox는 브라우저 콘솔에 "no element found"라는 메시지가 표시됩니다.이것은 Firefox의 버그로, 몇 년 전부터 보고되고 있습니다만, 수정되지 않았습니다."Content-type: text/plain" 헤더를 전송하면 Firefox에서 이 오류를 방지할 수 있습니다.

없지는 않아 같은 that,here은 예를 들어 내 대답의 지원을 위하여-->에 명백한 반면 서버 클라이언트까지, 이 데이터의 매개 변수 형식 자동으로는 it,th upzip는 브라우저는 bowser 리넷 데이터를 수집했죠 뭐 했냐고"지집"로 변해 여행을 하면서 데이터를 압축하게 해 주악용 당신은 HTTPCompression,which 볼 수 있다.는Bowser에서 Type이 정말로 중요한 예입니다.

언급URL : https://stackoverflow.com/questions/1414325/is-headercontent-typetext-plain-necessary-at-all

반응형