Protocol HTTP i HTTPS
El protocol de transferència d’hipertext (HTTP) és un protocol client-servidor per a gestionar els intercanvis d’informació entre els clients web i els servidors que implementen el protocol HTTP. Cal tenir en compte que el protocol HTTP és un protocol no segur. Per a implementar la seguretat cal establir el protocol HTTPS. HTTP implementa el protocol TCP de nivell de transport i, per tant, la transmissió de la informació és fiable (que no segura!). HTTPS també utilitza TCP però amb el xifratge de la comunicació. Per tant, la comunicació quan s'utilitza HTTPS és fiable i segura.
El funcionament del protocol HTTP és bastant simple: un procés està escoltant el port 80 a l'espera de rebre alguna petició d'un client.
Uniform resource locator (URL)
Una URL és una forma d'identificar de forma única un recurs a la xarxa: un recurs pot ser una plana web, una imatge, un video, un audio... Una URL està formada per diverses parts. Per exemple, la URL https://upload.wikimedia.org:443/wikipedia/commons/8/81/ADN_animation.gif diferenciem les següents parts:
- https : protocol utilitzat per a establir la connexió. Si el servidor suporta HTTP i HTTPS el client pot decidir la connexió a utilitzar.
- upload : nom de l'equip al qual ens volem connectar.
- wikimedia.org : nom del domini.
- 443 : port de connexió. Associat al protocol HTTPS
- wikipedia/commons/8/81 : carpeta de l'equip upload que volem accedir.
- ADN_animation.gif -> recurs web al qual volem accedir. En aquest cas, es tracta d'una imatge.
Transicions protocol HTTP
1.- Accés a una URL 2.- Client decodifica l'adreça: protocol a utilitzar, resolució equip/domini direcció url. 3.- Establiment connexió TCP/IP amb el servidor web pel port definit en la url. 4.- Resposta del servidor: codi d'estat amb una descripció. Els codis de resposta sempre estan formats de 3 xifres agrupats en 5 grups (100-199,200-299, ..., 500-599). El significat de cada un dels grups es detalla en la següent taula.
1xx | Informació relacionada amb la sol·licitud |
2xx | Sol·licitud executada amb èxit |
3xx | Redireccionament URL |
4xx | Error a nivell de client ![]() |
5xx | error a nivell de servidor |
5.- Tancament de la connexió
Aquest procés és repeteix múltiples vegades en l'accés a una plana web. S'estableix una comunicació inicial per accedir a la plana, i una connexió adicional per a determinats elements de la plana web: imatges, video, audio...
Tipus de connexions
Cal tenir en compte que el servei web utilitza el protocol TCP. Per tant, quan es fa una petició, cal rebre la confirmació que no hi ha hagut errors ni problemes en la transmissió de la mateixa. Els tipus de connexions en el servei web es diferencien per la forma en què es fa la connexió i la forma de gestionar la confirmació de la recepció. D'aquesta forma, es diferencien tres tipus diferents de connexions: transitòries , persistents i pipelining.
Connexions transitòries
Les connexions transitòries són les que , com el seu nom indica, són temporals. Per a cada petició al servidor web s'estableix una nova connexió amb el servidor. Així, per exemple, si una plana web té text, una imatge i una fulla d'estils associada, fitxer CSS, com a mínim s'establiran 3 connexions amb el servidor web, no necessàriament en aquest ordre: una per a sol·licitar la plana web, una segona per a la imatge i una tercera per la fulla d'estils.
Connexions persistents
Establir una nova connexió per a cada element d'una plana web no és la forma més eficient de funcionament. Les connexions persistents milloren l'eficiència utilitzant una única connexió per a tota la descàrrega de la plana web. D'aquesta forma es millora el rendiment global del sistema.
Pipelining
En les connexions persistents, tot i que es redueix el temps de connexió, hi ha una espera per a rebre l'acús de rebut (acknowledgement) del servidor o del client, segons quin sigui el receptor de la comunicació. El mètode pipelining consisteix en aprofitar el temps d'espera de la recepció de l'acús de rebut per a continuar gestionant noves peticions. D'aquesta forma es redueix de forma important el temps d'espera de la plana web.
Comandes HTTP
Comanda | Descripció |
---|---|
GET | S'utilitza per a obtenir alguna dada/informació del servidor web. Per tant, quan s'accedeix a una plana web s'està utilitzant aquest tipus de comanda. ![]() |
POST | S'utilitza per a enviar les dades al servidor web. Així, la majoria dels formularis web utilitzen aquest mètode per a enviar la informació. Algunes planes web també utilitzen el mètode GET per a enviar la informació |
HEAD | S'utilitza per a obtenir informació sobre algun objecte, normalment un arxiu: última data de modificació, tamany d'un arxiu... La informació relacionada amb la última data de modificació és important, ja que permet als gestors de memòria cau del client web o dels servidors intermitjos (proxys) , determinar si és necessària o no la descàrrega de l'element concret. |
df