Omet navegació

4. L'estandard HTTP/1.0

L’estàndard HTTP/1.0 recull, únicament, tres ordres que representen les operacions de recepció, enviament de la informació i revisió de l’estat.

  • Mètode de petició GET. S’utilitza per sol·licitar un recurs del servidor. Sempre que premem sobre un enllaç o escrivim una adreça d’Internet a la barra de navegació d’un navegador web, estem utilitzant aquest mètode de petició. Com a resultat, el servidor HTTP envia el document corresponent a l’adreça d’Internet seleccionada.
  • Mètode de petició HEAD. Sol·licita informació sobre un recurs com, per exemple, la seva grandària, el tipus, la data de modificació, etc. Acostuma a ser utilitzat pels gestors de memòries cau de pàgines o pels servidors intermediaris (proxy server) per conèixer quan cal actualitzar la còpia que es manté d’un arxiu determinat.
  • Mètode de petició POST. S’utilitza per enviar informació al servidor, com per exemple, les dades contingudes en un formulari. El servidor passarà aquesta informació a un procés encarregat del seu tractament (acostuma a ser una aplicació del servidor). L’operació que es durà a terme amb la informació proporcionada dependrà de l’adreça d’Internet (URL) utilitzada, principalment, en els formularis.

Val a dir que un client web selecciona automàticament les ordres HTTP necessàries per recollir la informació per a l’usuari. Per tant, davant l’activació d’un enllaç, sempre s’executa una operació GET amb la finalitat de recollir el document corresponent.

Tal com mostra la imatge següent, la comunicació entre el navegador i el servidor es duu a terme en dues etapes. D’una banda, el navegador fa una sol·licitud HTTP que, posteriorment, és processada pel servidor que, en conseqüència, envia una resposta HTTP.

Comunicació navegador - servidor
Comunicació navegador - servidor
IOC. Comunicació navegador - servidor (CC BY-SA)

Si avaluarem amb deteniment la sol·licitud HTTP ens trobaríem amb un conjunt de línies de text que el navegador envia al servidor. D’una banda, trobaríem una línia de sol·licitud, és a dir, una línia que especifica el tipus de document sol·licitat, el mètode que s’aplicarà i la versió del protocol utilitzat. Aquesta línia estarà integrada per tres elements separats per un espai, és a dir, el mètode, l’adreça web i el protocol HTTP utilitzat pel client.

A continuació, trobaríem els camps de l’encapçalament de sol·licitud, és a dir, un conjunt de línies opcionals que permeten aportar informació addicional sobre la sol·licitud i/o el client (navegador, sistema operatiu, etc.). Cadascuna d’aquestes línies estarà formada per un nom que descriu el tipus d’encapçalament, seguit per dos punts (:) i pel valor de l’encapçalament.

Finalment, el cos de la sol·licitud és un conjunt de línies opcionals separades de les línies anteriors amb una línia en blanc. La seva finalitat és permetre que s’enviïn dades al servidor utilitzant un formulari durant la transmissió.

Un exemple de sol·licitud HTTP seria el següent:

GET http://www.pego.org HTTP/1.0
Accept : Text/html If-Modified-Since : Saturday, 19-May-2006 17:39:13 GMT
User-Agent : Mozilla/6.0 (compatible; MSIE 5.0; Windows XP)

En conseqüència, la sol·licitud HTTP rebria una resposta HTTP, és a dir, un conjunt de línies que el servidor enviarà al navegador web. Com en el cas de la sol·licitud, la resposta HTTP conté alguns elements definitoris com, per exemple, una línia d’estat. Aquesta línia especifica la versió del protocol utilitzada i l’estat de la sol·licitud en procés mitjançant un text explicatiu i un codi.

En el cas dels camps de l'encapçalament de resposta, aquest és un conjunt de línies opcionals que permeten aportar informació addicional sobre la resposta i/o el servidor. Cadascuna d'aquestes línies es compon d'un nom que defineix el tipus d'encapçalament, seguit per dos punts (:) i pel valor de l'encapçalament.

En el cas del cos de la resposta, aquest conté el document sol·licitat. A mode d'exemple, a continuació es mostra un exemple d'una resposta HTTP:

HTTP/1.0 200 OK Date: 19 May 2006 17:40:12 GMT Server : Microsoft-IIS/2.0
Content-Type : text/HTML Content-Length : 1245 Last-Modified : 11 May 2006 08:29:13 GMT

Pel que fa als codis de resposta, aquests són els codis que es veuen quan el navegador no pot mostrar la pàgina web sol·licitada. La sintaxi d'una resposta HTTP és una línia d'estat i té una estructura fixa on s'indica la versió, el codi de l'error i un text explicatiu.

Els possibles codis d'estat s'identifiquen amb números de tres xifres i es classifiquen en cinc grups segons si són informatius (1xx), d'èxit en la sol·licitud (2xx), per tornar a adreçar la sol·licitud (3xx), per un error generat en el client (4xx) o bé per errors generats en el servidor (5xx).

Les respostes més típiques són els codis 200 per indicar la confirmació de la petició i el 404 per indicar que l'objecte sol·licitat no es troba disponible.

Alguns dels codis d'estat més  habituals són els següents:

Successful 2xx

This class of status code indicates that the client's request was successfully received, understood, and accepted.

200 OK

The request has succeeded. The information returned with the response is dependent on the method used in the request, as follows:

GET: an entity corresponding to the requested resource is sent in the response;

HEAD: the response must only contain the header information and no Entity-Body;

POST: an entity describing or containing the result of the action.

Redirection 3xx

301 Moved Permanently

302 Moved Temporarily

304 Not Modified

Client Error 4xx

400 Bad Request

401 Unauthorized. The request requires user authentication.

403 Forbidden. The server understood the request, but is refusing to fulfill it.
404 Not Found. The server has not found anything matching the Request-URI.

Server Error 5xx

500 Internal Server Error. The server encountered an unexpected condition which prevented it from fulfilling the request.

502 Bad Gateway. The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.

503 Service Unavailable. The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.

Línia d’encapçalament HTTP

Camp fonamental que defineix gran part de la informació que s’intercanvia entre els clients i els servidors. Aquestes línies permeten l’enviament d’informació descriptiva en la transacció i faciliten, per exemple, l’autenticació o identificació dels usuaris.