El protocol HTTP
El protocol HTTP (Hypertext Transfer Protocol) és el llenguatge que utilitzen els navegadors web i els servidors per comunicar-se a Internet. És un protocol client-servidor sense estat, el que significa que cada intercanvi de dades és independent i el servidor no guarda informació sobre les sol·licituds anteriors.
El funcionament es basa en un cicle simple de sol·licitud i resposta:
Els mètodes HTTP són verbs d'acció que defineixen el tipus d'operació que un client vol realitzar sobre un recurs a un servidor web. Són una part fonamental del protocol HTTP i guien la comunicació entre el navegador i el servidor.
-
GET: S'utilitza per obtenir dades d'un recurs del servidor. És el mètode més comú per a la navegació i les cerques. Les dades s'envien a la URL i no modifiquen l'estat del servidor (operació idempotent).
-
POST: S'utilitza per enviar dades al servidor per crear o actualitzar un recurs. Les dades s'incorporen al cos de la sol·licitud, no a la URL, el que el fa més segur per a dades sensibles. No és idempotent.
-
PUT: S'utilitza per actualitzar un recurs existent o per crear-ne un de nou si no existeix, a una URL específica. És idempotent.
-
DELETE: S'utilitza per eliminar un recurs específic del servidor. També és idempotent.
-
HEAD: Similar a
GET, però només sol·licita les capçaleres de la resposta, no el cos. És útil per obtenir informació d'un recurs sense descarregar-lo completament, per exemple, per comprovar si un arxiu ha estat modificat. -
PATCH: S'utilitza per aplicar modificacions parcials a un recurs. A diferència de
PUT, que substitueix el recurs sencer,PATCHnomés modifica les parts especificades.
El concepte d'idempotència es refereix a una operació que pot ser executada múltiples vegades sense canviar el resultat final més enllà de la primera execució. En altres paraules, aplicar la mateixa operació una vegada o mil vegades produeix el mateix efecte sobre el recurs o l'estat del sistema.
Mètodes HTTP
| Mètode | Funció principal | Dades a la URL? | Seguretat | Idempotent? |
| GET | Obtenir un recurs | Sí | Baixa | ✅ Sí |
| POST | Enviar dades per crear un recurs | No | Alta | ❌ No |
| PUT | Actualitzar o crear un recurs complet | No | Alta | ✅ Sí |
| DELETE | Eliminar un recurs | No | Alta | ✅ Sí |
| HEAD | Obtenir només les capçaleres del recurs | Sí | Baixa | ✅ Sí |
| PATCH | Modificar parcialment un recurs | No | Alta | ❌ No |
| OPTIONS | Retorna els mètodes per un recurs | Sí | Baixa | ❌ No |
Existeixen altres mètodes i fins i tot, altres protocols que s'han basat en HTTP com WebDAV afegeixen mètodes addicionals.
Codis de resposta
Categoria 1xx: Informació
Indiquen que la sol·licitud ha estat rebuda i el procés continua. Normalment no es veuen al navegador.
-
100 Continue: El servidor ha rebut les capçaleres de la sol·licitud i el client ha de continuar enviant el cos de la sol·licitud.
Categoria 2xx: Èxit
Indiquen que la sol·licitud s'ha processat correctament.
-
200 OK: La sol·licitud s'ha realitzat amb èxit. Aquest és el codi més comú. -
201 Created: La sol·licitud s'ha completat amb èxit i s'ha creat un nou recurs. (Comú ambPOST). -
204 No Content: La sol·licitud s'ha processat correctament, però no hi ha contingut per retornar al cos de la resposta. (Comú ambPUToDELETE).
Categoria 3xx: Redirecció
Indiquen que es necessita una acció addicional per completar la sol·licitud, generalment redirigint el navegador a una nova URL.
-
301 Moved Permanently: El recurs s'ha mogut permanentment a una nova URL. El client ha de fer la sol·licitud a la nova adreça. -
302 Found: El recurs es troba temporalment a una altra URL. El client ha de fer la sol·licitud allà, però ha de seguir utilitzant l'adreça original en el futur.
Categoria 4xx: Error del Client
Indiquen que hi ha hagut un error a causa d'una sol·licitud incorrecta per part del client.
-
400 Bad Request: El servidor no pot processar la sol·licitud perquè la sintaxi és incorrecta o malformada. -
401 Unauthorized: Es requereix autenticació per accedir al recurs. (L'usuari no ha iniciat sessió o no té permisos). -
403 Forbidden: El servidor ha entès la sol·licitud, però es nega a autoritzar-la. L'usuari no té permís per accedir al recurs, independentment de si s'ha autenticat. -
404 Not Found: El recurs sol·licitat no existeix al servidor. Aquest és un dels errors més familiars. -
405 Method Not Allowed: El mètode HTTP utilitzat (per exemple,POST) no està permès per al recurs sol·licitat.
Categoria 5xx: Error del Servidor
Indiquen que el servidor ha fallat en processar una sol·licitud vàlida.
-
500 Internal Server Error: S'ha produït un error inesperat al servidor que impedeix complir amb la sol·licitud. -
503 Service Unavailable: El servidor no pot gestionar la sol·licitud actualment, normalment a causa d'un manteniment o sobrecàrrega temporal.