type que plugin espaƱol equiv content charset php head

php - que - Es encabezado(''Content-Type: text/plain''); necesario en absoluto?



meta tags wordpress plugin (6)

No vi ninguna diferencia con o sin esta información principal todavía.


Definir "necesario".

Es necesario si desea que el navegador sepa cuál es el tipo de archivo. PHP establece automáticamente el encabezado Content-Type en text/html si no lo reemplaza para que su navegador lo trate como un archivo HTML que no contiene ningún código HTML. Si su salida contiene algún código HTML, verá resultados muy diferentes. Si fuera a enviar:

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

un tipo de Content-Type: text/html generaría:

prueba

mientras que Content-Type: text/plain daría como resultado:

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

Versión de TLDR: si realmente solo está enviando texto, entonces realmente no importa, pero ES incorrecto.


Es muy importante que le digas al navegador qué tipo de datos lo estás enviando. La diferencia debería ser obvia. Intente ver el resultado del siguiente archivo PHP en su navegador;

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

Ya verás:

Hola

(Tenga en cuenta que obtendrá los mismos resultados si pierde la línea del encabezado en este caso - text / html es el valor predeterminado de php)

Cambiarlo a texto / normal

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

Ya verás:

<p> Hola </ p>

¿Por qué importa esto? Si tiene algo así como lo siguiente en un script php que, por ejemplo, es utilizado por una solicitud de Ajax:

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

Alguien puede poner un enlace a una URL como http://example.com/test.php?name=%3Cscript%20src=%22http://example.com/eviljs%22%3E%3C/script%3E en su sitio, y si un usuario hace clic en él, han expuesto toda su información en su sitio a quien puso el enlace. Si sirve el archivo como texto / sin formato, está a salvo.

Tenga en cuenta que este es un ejemplo tonto, es más probable que el atacante agregue la etiqueta de secuencia de comandos incorrecta a un campo en la base de datos o al enviar un formulario.


Establecer el encabezado de tipo de contenido afectará la forma en que un navegador web trata su contenido. Cuando la mayoría de los navegadores web convencionales se encuentran con un tipo de contenido de texto / plano, mostrarán el origen de texto en bruto en la ventana del navegador (a diferencia de la fuente procesada en HTML). Es la diferencia entre ver

<b>foo</b>

o

foo

Además, al usar el objeto XMLHttpRequest , su encabezado de tipo de contenido afectará la forma en que el navegador serializa los resultados devueltos. Antes de la adquisición de marcos AJAX como jQuery y Prototype, un problema común con las respuestas AJAX era un tipo de contenido configurado para text / html en lugar de text / xml. Es probable que ocurran problemas similares si Content-Type fuera text / plain.


PHP utiliza Content-Type "text / html" como valor predeterminado, que es bastante similar a "text / plain", y esto explica por qué no ve ninguna diferencia. text / plain es necesario si desea imprimir texto como está (incluidos <> símbolos). Ejemplos:

header("Content-Type: text/plain"); echo "<b>hello world</b>"; // Output: <b>hello world</b> header("Content-Type: text/html"); echo "<b>hello world</b>"; // Output: hello world


Supongamos que desea responder a una solicitud con un 204: estado sin contenido HTTP. Firefox se quejará con "ningún elemento encontrado" en la consola del navegador. Este es un error en Firefox que se ha informado, pero que nunca se solucionó, durante varios años. Al enviar un encabezado "Content-type: text / plain", puede evitar este error en Firefox.


no, no es así, aquí está el Ejemplo para el soporte de mi respuesta ----> la clara diferencia es visible, cuando se usa Compresión HTTP, que le permite comprimir los datos mientras viaja de Servidor a Cliente y el Tipo de estos datos se vuelven automáticamente como "gzip", que le dice al navegador que Bowser obtuvo los datos comprimidos y tiene que subirlos , este es un ejemplo en el que Type realmente importa en Bowser.