<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Protocolo_HTTP</id>
	<title>Curso POO PHP Protocolo HTTP - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Curso_POO_PHP_Protocolo_HTTP"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Protocolo_HTTP&amp;action=history"/>
	<updated>2026-10-23T22:14:43Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Protocolo_HTTP&amp;diff=40109&amp;oldid=prev</id>
		<title>Vlourido en 22:38 21 ene 2014</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Curso_POO_PHP_Protocolo_HTTP&amp;diff=40109&amp;oldid=prev"/>
		<updated>2014-01-21T22:38:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Protocolo HTTP ==&lt;br /&gt;
&lt;br /&gt;
O protocolo HTTP baséase no envío de mensaxes de petición e de resposta. Cada unha destas mensaxes componse de:&lt;br /&gt;
* Liña de petición ou de resposta.&lt;br /&gt;
* Encabezados.&lt;br /&gt;
* Corpo da mensaxe (opcional).&lt;br /&gt;
&lt;br /&gt;
=== Mensaxes de petición ===&lt;br /&gt;
&lt;br /&gt;
Nunha mensaxe de petición típica, a primeira liña contén o método da petición, a dirección do recurso e a versión do protocolo HTTP. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
GET /imaxes/logo.png HTTP/1.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Os &amp;#039;&amp;#039;&amp;#039;métodos máis comúns dunha petición HTTP&amp;#039;&amp;#039;&amp;#039; son:&lt;br /&gt;
* GET. Pide unha representación do recurso especificado (o contido do arquivo correspondente ao recurso).&lt;br /&gt;
* HEAD. Pide unha resposta idéntica á que correspondería a unha petición GET, pero sen o corpo da resposta. Isto é útil por exemplo para saber se unha páxina web que o navegador ten almacenada en caché, foi actualizada no servidor.&lt;br /&gt;
* POST. Envía datos para que sexan procesados polo recurso identificado. Os datos inclúense no corpo da mensaxe.&lt;br /&gt;
* PUT. Sobe un recurso especificado (arquivo) ao servidor.&lt;br /&gt;
* DELETE. Borra o recurso especificado.&lt;br /&gt;
&lt;br /&gt;
=== Mensaxes de resposta ===&lt;br /&gt;
&lt;br /&gt;
Nunha mensaxe de resposta, a primeira liña contén a versión do protocolo, un código de estado e unha descrición. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O &amp;#039;&amp;#039;&amp;#039;código de resposta&amp;#039;&amp;#039;&amp;#039; ou código de estado é un número de tres cifras que serve para indicar se unha petición se recibiu e atendeu correctamente, ou se se produciu calquera problema. O primeiro díxito indica o tipo do código.&lt;br /&gt;
&lt;br /&gt;
* 1 xx (Resposta informativa). Indícalle ao cliente que se recibiu a petición e se está a continuar. Trátase dunha resposta provisional e hai que realizar unha nova transacción HTTP para que se poida obter a reposta definitiva. Non se aconsella que os servidores envíen estas respostas.&lt;br /&gt;
* 2 xx (Petición correcta). Indica que a petición recibida anteriormente foi recibida, aceptada e procesada correctamente no servidor.&lt;br /&gt;
* 3 xx (Redirección). Indícaselle ao cliente HTTP que ten que realizar algunha acción adicional para que se poida resolver completamente a petición que se realizou.&lt;br /&gt;
* 4 xx (Erros do cliente). Recibiuse unha petición cunha sintaxe errónea ou non se puido procesar a petición.&lt;br /&gt;
* 5 xx (Erros do servidor). Produciuse un erro no servidor que lle impediu atender e procesar a petición.&lt;br /&gt;
&lt;br /&gt;
Os máis comúns son:&lt;br /&gt;
&lt;br /&gt;
* 200 (OK). É a resposta estándar para peticións correctas.&lt;br /&gt;
* 403 (Prohibido). O servidor rexeita responder á solicitude por falta de privilexios (por exemplo, o usuario que o solicita non está autenticado ou non ten permiso).&lt;br /&gt;
* 404 (Recurso non encontrado). Utilízase cando o servidor web non encontra a páxina ou recurso solicitado.&lt;br /&gt;
&lt;br /&gt;
=== Encabezados ===&lt;br /&gt;
&lt;br /&gt;
Os encabezados utilízanse en función do método da petición ou resposta, para dar máis información. Hai encabezados xerais (utilízanse tanto en mensaxes de petición coma en mensaxes de resposta), e encabezados específicos para mensaxes de petición ou de resposta. Por exemplo:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Host&amp;#039;&amp;#039;&amp;#039; (de petición). Equipo ao que se envía a petición.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;User-Agent&amp;#039;&amp;#039;&amp;#039; (de petición). Nome e versión do cliente (navegador) e do sistema operativo.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Server&amp;#039;&amp;#039;&amp;#039; (de resposta). Nome e versión do software que se executa no servidor web.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MIME-Version&amp;#039;&amp;#039;&amp;#039; (xeral). Versión de MIME que utiliza o cliente.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Accept&amp;#039;&amp;#039;&amp;#039; (de petición). Tipo de contido que acepta o navegador.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Accept-Language&amp;#039;&amp;#039;&amp;#039; (de petición). Idiomas que espera o navegador nas páxinas recibidas.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Accept-Encoding&amp;#039;&amp;#039;&amp;#039; (de petición). Sistema de codificación que espera o navegador para o recurso a recibir.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Accept-Charset&amp;#039;&amp;#039;&amp;#039; (de petición). Xogo ou conxunto de carácteres que espera recibir o navegador.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Referer&amp;#039;&amp;#039;&amp;#039; (de petición). URL dende onde se orixinou a petición (URL da páxina que contiña o enlace).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Location&amp;#039;&amp;#039;&amp;#039; (de resposta). Emprégase para redireccionar o navegador a unha nova URL.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Set-Cookie&amp;#039;&amp;#039;&amp;#039; (de resposta). Envía unha cookie do servidor ao cliente para que a almacene.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Cookie&amp;#039;&amp;#039;&amp;#039; (de petición). Envía ao servidor as cookies almacenadas para o dominio.&lt;br /&gt;
&lt;br /&gt;
Por exemplo, para indicar que a petición vai destinada ao equipo www.iessanclemente.net, engadiríase o seguinte encabezado á mensaxe de petición:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
Host: www.iessanclemente.net&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dende PHP podemos empregar a función &amp;#039;&amp;#039;&amp;#039;[http://es1.php.net/manual/en/function.header.php header]&amp;#039;&amp;#039;&amp;#039; para engadir un encabezado específico á páxina de resposta xerada. Esta función debe empregarse antes de ter xerado calquera tipo de saída no script. Por exemplo, para redireccionar a petición a unha nova páxina, podemos facer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
header(&amp;quot;Location: http://www.iessanclemente.net/&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Temos outras duas funcións relacionadas cos encabezados que poden ser de utilidade:&lt;br /&gt;
&lt;br /&gt;
* Para saber os encabezados que imos a enviar na resposta ao cliente podemos empregar a función &amp;#039;&amp;#039;&amp;#039;[http://es1.php.net/manual/en/function.headers-list.php headers_list]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Para comprobar se aínda non foron enviados os encabezados (e polo tanto aínda estamos a tempo de engadir algún máis) podemos empregar &amp;#039;&amp;#039;&amp;#039;[http://es1.php.net/manual/en/function.headers-sent.php headers_sent]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Exemplo dunha comunicación HTTP ===&lt;br /&gt;
&lt;br /&gt;
Unha petición HTTP podería ter a seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
GET /index.html HTTP/1.1&lt;br /&gt;
Host: www.iessanclemente.net&lt;br /&gt;
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4&lt;br /&gt;
[Liña en branco]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E a súa respectiva resposta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Fri, 21 Oct 2021 14:21:29 GMT&lt;br /&gt;
Content-Type: text/html&lt;br /&gt;
Content-Length: 2221&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;h1&amp;gt;Encabezado&amp;lt;/h1&amp;gt;&lt;br /&gt;
 (Contido)&lt;br /&gt;
 …&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Extensións PHP relacionadas co protocolo HTTP ===&lt;br /&gt;
&lt;br /&gt;
En PHP podemos empregar as seguintes extensións para traballar directamente co protocolo HTTP:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/book.curl.php cURL]&amp;#039;&amp;#039;&amp;#039;. Utiliza a libraría libcurl para funcionar como cliente de varios protocolos, entre eles HTTP e HTTPS.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[http://www.php.net/manual/es/book.http.php HTTP]&amp;#039;&amp;#039;&amp;#039;. Facilita entre outras o manexo das mensaxes HTTP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[Usuario:Vlourido|Víctor Lourido]] 02:45 14 jul 2013 (CEST)&lt;/div&gt;</summary>
		<author><name>Vlourido</name></author>
	</entry>
</feed>