¿Qué características ocultas de HTTP cree que vale la pena mencionar?
Por características ocultas me refiero a características que ya forman parte del estándar pero que son bastante desconocidas o no se utilizan.
Solo una función por respuesta, por favor.
El hecho de que el remitente estaba mal escrito y se decidió mantener el error ortográfico.
fuente
Respuesta obvia: métodos PUT, DELETE, TRACE, OPTIONS, CONNECT
La mayoría de las personas conocen los métodos GET y POST porque eso es lo que usan al crear formularios. Los navegadores también usan mucho HEAD. Los otros métodos son mucho menos conocidos; se utilizan principalmente para aplicaciones más específicas.
fuente
¿Alguien ha visto alguna vez el pago 402 requerido ?
fuente
204 Sin contenido
Pensé que 204 era solo si no tienes contenido para mostrar, pero la especificación parece que hay un comportamiento adicional de que el agente de usuario "no cambia la vista del documento".
Según HOWTO: Configure Apache para devolver un HTTP 204 (sin contenido) para AJAX
Además, 204 No Content propone que esta es una buena técnica para "errores web" o "balizas" si desea ahorrar hasta el último byte de tráfico de red que pueda.
fuente
Código de respuesta
410 Gone
:Las arañas web (sobre todo Google) desindexarán (normalmente en el siguiente rastreo) una página que comienza a devolver 410.
fuente
En contenido dinámico, use el encabezado Last_Modified o ETag
A veces, tiene contenido dinámico que puede ser grande y / o costoso de generar y que puede no cambiar de una solicitud a otra. Puede agregar un encabezado Last_Modified o ETag a la respuesta generada.
En la parte superior de su costoso código dinámico, puede usar If_Modified_Since o If_None_Match para determinar si el solicitante de contenido que ya tiene todavía está actualizado. Si es así, cambie el estado de respuesta a "304 Sin modificar" y finalice la solicitud.
Algunas tecnologías del lado del servidor proporcionan estas características formalmente, pero puede hacer lo anterior incluso en ASP-Classic humilde.
Tenga en cuenta que esto difiere de la configuración de Cache-Control, expira los encabezados en que garantiza que el cliente siempre tenga la información más reciente a pedido.
fuente
Puede solicitar reanudar una respuesta HTTP (grande) (por ejemplo, descarga de archivo) utilizando
Range
yIf-Range
solicitar encabezados con el rango de bytes especificado y el identificador de archivo único o la marca de tiempo de modificación del archivo, respectivamente. Esto es posible si el servidor ha enviado losAccept-Ranges: bytes
yETag
oLast-Modified
cabeceras de respuesta de la respuesta inicial con, respectivamente, la notificación de que las solicitudes de intervalo de bytes soporte el servidor, el identificador de archivo único y la fecha y hora de modificación del archivo.La respuesta inicial puede verse así (
ETag
generalmente se compone de nombre de archivo, tamaño y marca de tiempo de la última modificación):Cuando la descarga se cancela, por ejemplo, en 1 KB (1024 bytes), el cliente puede reanudarla de la siguiente manera:
Que debería devolver esta respuesta con los bytes apropiados en el cuerpo:
fuente
ReST intenta llevar HTTP a sus límites como protocolo de interfaz.
No es una característica oculta , pero al observar las API de ReST bien definidas, uno puede comprender cómo debe funcionar HTTP y encontrar ejemplos maravillosos de lo que se puede lograr con una combinación simple de métodos HTTP, códigos de estado y encabezados para y de un lado a otro.
fuente
Tráiler (en contraste con el encabezado)
fuente
El protocolo le permite definir sus propios campos personalizados. Estos pueden usarse para transportar otra información si no desea usar cookies para ello.
fuente
Estado HTTP 100 (Continuar)
Un cliente puede enviar un mensaje de solicitud con un cuerpo de solicitud para determinar si el servidor de origen está dispuesto a aceptar la solicitud.
En algunos casos, puede ser inapropiado o muy ineficiente que el cliente envíe el cuerpo si el servidor rechaza el mensaje sin mirar el cuerpo.
Podría usarse para evitar el tráfico de clientes deshonestos ... y / o donde el ancho de banda es un bien valioso.
Sin embargo, para el uso completo de esta función, existen algunos criterios para el cliente, servidores y proxies HTTP1.1. Consulte HTTP / 1.1 RFC 2616 para obtener más información sobre las conexiones HTTP.
fuente
Códigos de estado :
http://www.domain.invalid/index.php?id=44
, si la consulta (id=44
) no puede devolver un recurso, ¿por qué no devolver un código de estado404
?http://www.domain.invalid/index.php?id=foo
mientras queid
solo acepta números enteros, ¿por qué no devolver un código de estado400
?200
Error de autenticación" con el código de estado (ok, no hay problema, lo hace bien) en lugar de401
?Sí, los códigos de estado parecen ser una especie de funcionalidad secreta de HTTP para algunos desarrolladores web ... ¡Pero me pregunto si la más oculta de todas las "características" de este protocolo no es su RFC !
fuente
401
es solo para autenticación HTTP y no para otros tipos. Afaik, hace que la mayoría de los navegadores soliciten al usuario una contraseña http.HTTP-Authentication
... ^^ ¿Es tan difícil usarlo en lugar de reinventar la rueda?.htaccess
archivos de Apache, que probablemente solo sea un el webmaster puede actualizar. Por lo tanto, la autenticación HTTP no es muy adecuada para administrar los derechos de usuario y el inicio / cierre de sesión de una aplicación.HTTP-Authentication
, e incluso PHP es capaz de manejarHTTP-Authentication
( php.net/manual/en/features.http-auth.php ). Si es un desarrollador web, debe obtener los conceptos básicos de la administración del servidor, ¡solo por razones de seguridad! Como desarrollador web debe tener habilidades de webmaster / sysadmin, puede realizar fácilmente estas tareas.