헤더('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/plain
content-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
'programing' 카테고리의 다른 글
PyCharm에서 최대 회선 길이를 설정하려면 어떻게 해야 합니까? (0) | 2022.09.13 |
---|---|
JavaScript 가비지 컬렉션이란? (0) | 2022.09.13 |
어레이에 값이 포함되어 있는지 확인합니다. (0) | 2022.09.13 |
SELECT MAX('Id')를 테이블에서 setval()로 전달합니다. (0) | 2022.09.13 |
Python에서 싱글톤 만들기 (0) | 2022.09.13 |