
# Guide sur la Méthode HTTP
  
### Introduction
Les codes d'état HTTP font partie intégrante d'Internet et sont utilisés pour décrire les résultats des requêtes envoyées aux serveurs web. Il existe au total cinq catégories différentes de codes d'état, chacune ayant une signification spécifique. Vous trouverez sur notre site une liste complète de tous les codes d'état HTTP ainsi que des explications détaillées pour chaque catégorie.
---
### Méthode HTTP
Les codes d'état et les méthodes HTTP sont des éléments cruciaux de l'écosystème d'Internet et constituent l'épine dorsale de la communication entre les serveurs web et les clients. Toute personne ayant déjà visité un site web a interagi, souvent sans s'en rendre compte, avec ces mécanismes. Par exemple, lorsqu'une page est introuvable, on tombe sur le fameux code de statut "404 Not Found". C'est à un tel moment que l'on se rend compte à quel point nos expériences en ligne sont étroitement liées à ces codes. Dans la chorégraphie complexe du trafic web, les méthodes HTTP servent de repères indiquant quelle action doit être effectuée, tandis que les codes d'état HTTP nous informent sur le succès ou l'échec de ces actions. Ce double système assure la clarté et l'efficacité du trafic web et permet aux sites et aux applications web d'interagir en douceur avec une grande variété de terminaux et d'utilisateurs. C'est un langage qui, bien qu'il reste généralement invisible, joue un rôle central dans le monde numérique qui nous entoure.
---
### Le Protocole HTTPS
Le protocole HTTPS, abréviation de "HyperText Transfer Protocol Secure", est un protocole de communication utilisé pour sécuriser les échanges de données entre un navigateur Web et un site internet. Il fonctionne en ajoutant une couche de chiffrement SSL/TLS (Secure Socket Layer/Transport Layer Security) aux données qui sont transmises entre le serveur du site Web et le navigateur de l'utilisateur. Cela permet de garantir la confidentialité, l'intégrité et l'authenticité des données échangées, empêchant ainsi toute interception ou altération indésirable par des tiers.
> **La différence entre HTTP et HTTPS ?**
> Le protocole HTTP est le protocole de communication utilisé pour transférer des données sur le Web. Il permet aux navigateurs Web de demander des ressources, telles que des pages Web, des images et des fichiers, à des serveurs Web, qui répondent en renvoyant les données demandées. Autrement dit, HTTPS (HTTP Secure) est une version sécurisée du protocole HTTP qui utilise le protocole SSL/TLS pour chiffrer les données échangées entre le navigateur Web et le serveur Web.
---
### Les 4 types de méthodes de requête HTTP ?
Il existe de nombreuses méthodes de requête HTTP, mais les quatre les plus courantes sont :
1. [**GET**](https://http-statuscode.com/fr/method/GET) : Demande des données à partir d'une ressource. Par exemple, lorsque vous ouvrez une page Web dans votre navigateur, le navigateur envoie généralement une requête GET.
2. [**POST**](https://http-statuscode.com/fr/method/POST) : Envoie des données au serveur pour créer une ressource. Cela est souvent utilisé lorsque vous remplissez et soumettez un formulaire sur une page Web.
3. [**PUT**](https://http-statuscode.com/fr/method/PUT) : Met à jour une ressource existante avec de nouvelles données.
4. [**DELETE**](https://http-statuscode.com/fr/method/DELETE) : Demande au serveur de supprimer une ressource.
| Méthode HTTP | Cacheable | Idempotent | Safe | Request has payload body | Response has payload body |
| --- | --- | --- | --- | --- | --- |
| GET | Yes | Yes | Yes | En option | Yes |
| HEAD | Yes | Yes | Yes | En option | Non |
| POST | Yes | Non | Non | Yes | Yes |
| PUT | Non | Yes | Non | Yes | Yes |
| DELETE | Non | Yes | Non | En option | Yes |
| CONNECT | Non | Non | Non | En option | Yes |
| OPTIONS | Non | Yes | Yes | En option | Yes |
| TRACE | Non | Yes | Yes | Non | Yes |
---
## Listes des Codes d'état HTTP
### 1xx : Réponses Informatives
<details>
<summary><strong>Voir les détails des codes 1xx</strong></summary>
| Code | Description | Conseils de dépannage | Exemples concrets |
|------|-------------|-----------------------|-------------------|
| 100 | **Continue**<br>Le serveur a reçu les en-têtes de la requête et le client doit continuer à envoyer le corps de la requête. | Assurez-vous que le client envoie les en-têtes correctement avant de transmettre le corps. | Lorsqu'un client envoie une requête POST volumineuse, ce code peut être utilisé pour vérifier que les en-têtes ont été reçus avant d'envoyer le corps. |
| 101 | **Switching Protocols**<br>Le serveur accepte de changer le protocole conformément à la demande du client. | Vérifiez que le protocole de commutation demandé est supporté par le serveur. | Utilisé pour passer du HTTP au WebSocket. |
</details>
---
### 2xx : Succès
<details>
<summary><strong>Voir les détails des codes 2xx</strong></summary>
| Code | Description | Conseils de dépannage | Exemples concrets |
|------|-------------|-----------------------|-------------------|
| 200 | **OK**<br>La requête a réussi. | Vérifiez le contenu de la réponse pour s'assurer qu'il est correct. | Une requête GET pour récupérer une page web. |
| 201 | **Created**<br>La requête a réussi et une nouvelle ressource a été créée. | Vérifiez l'URI de la nouvelle ressource dans l'en-tête Location. | Une requête POST qui crée un nouvel enregistrement dans une base de données. |
| 204 | **No Content**<br>La requête a réussi, mais il n'y a pas de contenu à envoyer dans la réponse. | Utilisé pour des opérations qui ne nécessitent pas de réponse spécifique (comme DELETE). | Suppression d'une ressource où le client n'a pas besoin de réponse. |
</details>
---
### 3xx : Redirection
<details>
<summary><strong>Voir les détails des codes 3xx</strong></summary>
| Code | Description | Conseils de dépannage | Exemples concrets |
|------|-------------|-----------------------|-------------------|
| 300 | **Choix multiples**<br>L'URI fait référence à plusieurs fichiers. Le serveur peut répondre avec un message d'erreur ou une liste d'options. | Assurez-vous que le client peut gérer les multiples choix. | Référencement d'une page web avec plusieurs versions linguistiques. |
| 301 | **Déplacé de façon permanente**<br>La page a été déplacée définitivement. | Utilisé lorsque le site web migre vers un nouveau domaine. | Redirection d'une ancienne page web vers une nouvelle URL permanente. |
| 302 | **Déplacé temporairement**<br>La page a été temporairement déplacée. | Utilisé pour rediriger temporairement le trafic sans changer les URL enregistrées. | Redirection d'une page vers une page de maintenance temporaire. |
| 303 | **Voir autre**<br>Le serveur a reçu la demande, et la réponse peut être trouvée à l'aide d'une requête GET à un autre URI. | Vérifiez l'URI de redirection dans l'en-tête Location. | Redirection après une action POST réussie pour obtenir une page de confirmation. |
| 304 | **Non modifié**<br>La ressource n'a pas été modifiée depuis la dernière requête. | Utilisé pour l'optimisation de la mise en cache. | Lorsqu'une ressource est mise en cache et n'a pas changé depuis la dernière demande. |
| 305 | **Utiliser Proxy**<br>Le client doit répéter la demande en utilisant le proxy spécifié. | Assurez-vous que le proxy spécifié est correctement configuré. | Redirection via un proxy pour des raisons de sécurité ou de performance. |
| 307 | **Redirection temporaire**<br>La demande doit être répétée avec un autre URI, mais les demandes futures doivent utiliser l'URI d'origine. | Vérifiez que l'URI de redirection est correct et temporaire. | Redirection vers une page de maintenance temporaire. |
| 308 | **Redirection permanente**<br>La demande et toutes les demandes futures doivent être répétées à l'aide d'un autre URI. | Assurez-vous que l'URI de redirection est correct et permanent. | Migration permanente d'une ressource vers une nouvelle URL. |
</details>
---
### 4xx : Erreurs Client
<details>
<summary><strong>Voir les détails des codes 4xx</strong></summary>
| Code | Description | Conseils de dépannage | Exemples concrets |
|------|-------------|-----------------------|-------------------|
| 400 | **Mauvaise demande**<br>La demande contient une erreur de syntaxe. | Vérifiez la syntaxe de la requête. | Envoi d'une requête POST avec des données mal formatées. |
| 401 | **Non autorisé**<br>L'authentification est requise et a échoué ou n'a pas été fournie. | Assurez-vous que les informations d'identification sont correctes. | Tentative d'accès à une page protégée sans être connecté. |
| 402 | **Paiement requis**<br>Réservé pour une utilisation future. | Vérifiez si des frais sont nécessaires pour accéder à la ressource. | Accès à une API payante sans fournir de paiement. |
| 403 | **Interdit**<br>Le client n'a pas l'autorisation nécessaire pour accéder à la ressource. | Vérifiez les permissions de la ressource demandée. | Tentative d'accès à une page administrateur sans privilèges suffisants. |
| 404 | **Non trouvé**<br>La ressource demandée n'a pas pu être trouvée. | Vérifiez l'URL et assurez-vous que la ressource existe. | Accès à une page web qui n'existe pas ou a été supprimée. |
| 405 | **Méthode Non Autorisée**<br>La méthode HTTP utilisée n'est pas prise en charge. | Utilisez une méthode HTTP valide pour la ressource. | Utilisation de la méthode POST sur une ressource qui n'accepte que GET. |
| 406 | **Non acceptable**<br>La ressource existe mais n'est pas acceptable selon les en-têtes Accept de la requête. | Ajustez les en-têtes Accept de la requête pour correspondre à ce que le serveur peut retourner. | Requête GET avec des en-têtes Accept inappropriés. |
| 407 | **Authentification par proxy requise**<br>Le client doit s'authentifier auprès du proxy avant de faire cette demande. | Fournissez les informations d'identification requises au proxy. | Tentative d'accès via un proxy nécessitant une authentification sans fournir d'identifiants. |
| 408 | **Demande de délai d'attente**<br>Le serveur a expiré en attendant que le client termine la demande. | Vérifiez la connexion et la durée de la requête. | Requête longue sans réponse rapide du client. |
| 409 | **Conflit**<br>La demande n'a pas pu être traitée en raison d'un conflit avec l'état actuel de la ressource. | Résolvez le conflit avant de refaire la demande. | Modification simultanée d'une ressource par plusieurs utilisateurs. |
| 410 | **Disparu**<br>La ressource demandée n'est plus disponible et ne le sera plus. | Supprimez les références à la ressource disparue. | Accès à une ressource supprimée de façon permanente. |
| 429 | **Trop de requêtes**<br>Le client a envoyé trop de requêtes en un temps donné. | Implémentez un délai avant de refaire des requêtes. | Envoi de trop de requêtes à une API en peu de temps. |
</details>
---
### 5xx : Erreurs Serveur
<details>
<summary><strong>Voir les détails des codes 5xx</strong></summary>
| Code | Description | Conseils de dépannage | Exemples concrets |
|------|-------------|-----------------------|-------------------|
| 500 | **Erreur Interne Au Serveur**<br>Une erreur non spécifiée s'est produite sur le serveur. | Vérifiez les journaux du serveur pour diagnostiquer le problème. | Problèmes avec les scripts du serveur ou les configurations. |
| 501 | **Non mis en œuvre**<br>Le serveur ne peut pas répondre à la demande. | Assurez-vous que la fonctionnalité demandée est supportée. | Utilisation d'une méthode HTTP non prise en charge par le serveur. |
| 502 | **Mauvaise passerelle**<br>Le serveur, agissant comme passerelle, a reçu une réponse invalide du serveur en amont. | Vérifiez la connectivité et la configuration des serveurs intermédiaires. | Problème avec un serveur intermédiaire ou un proxy. |
| 503 | **Service indisponible**<br>Le serveur est temporairement incapable de traiter la demande. | Vérifiez la charge du serveur et les opérations de maintenance. | Maintenance planifiée ou surcharge temporaire. |
| 504 | **Délai d'attente de la passerelle**<br>Le serveur, agissant comme passerelle, n'a pas reçu de réponse à temps du serveur en amont. | Vérifiez les délais d'attente et les performances du serveur en amont. | Problème de communication avec un serveur en amont. |
</details>
---
### Codes Non Standard
<details>
<summary><strong>Voir les détails des codes non standard</strong></summary>
| Code | Description | Conseils de dépannage |
|------|-------------|-----------------------|
| 999 | **Non standard**<br>Code renvoyé par certains sites qui ne permettent pas la numérisation. | Utilisé par certains sites pour bloquer les robots. Considérez des alternatives légitimes pour accéder aux données. |
</details>
---
### Références
- [RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content](https://tools.ietf.org/html/rfc7231)
- [MDN Web Docs - HTTP response status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)
- [Wikipedia - List of HTTP status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
---
### Outils en ligne
- [Header Tool](https://www.internetmarketingninjas.com/tools/fetch-header/)
- [Crawl-Tools](https://www.crawl-tools.com/fr/entete-page-internet/)
- [Cyberchef](https://gchq.github.io/CyberChef/)
- [Get HTTP](https://smallseotools.com/instant-search-suggestions/)
- [http-status](https://httpstatus.io/)
- [ReqBin](https://reqbin.com/)
---
**Auteur :** [Cyberhunter443](https://github.com/cyberhunter443/cyberhunter443)