Réponse du serveur 100 Continue
Code de statut HTTP 100 (Continue)
Le code de statut HTTP 100 (Continue) est un code temporaire qui indique que la première partie de la requête a été reçue avec succès par le serveur, permettant au client de continuer l'envoi du corps de la requête. Ce code est particulièrement utile pour optimiser le transfert de grandes quantités de données.
Principes de base
- Qu'est-ce que le code 100 (Continue) ? C'est un signal du serveur indiquant au client qu'il peut poursuivre l'envoi de données après avoir reçu les en-têtes de la requête.
- Quand et pourquoi utiliser ce code ? Il est principalement utilisé dans les situations où le corps de la requête est volumineux, permettant ainsi au client d'éviter d'envoyer des données superflues lorsque les en-têtes ne sont pas acceptés par le serveur.
Exemples pratiques d'utilisation
Exemple 1 : Envoi d'un fichier volumineux
Lorsqu'un client souhaite envoyer un fichier de grande taille, il envoie d'abord les en-têtes de la requête. Si le serveur accepte les en-têtes, il répond avec le code 100, permettant au client de continuer avec l'envoi du fichier.
- Avantages de l'utilisation de ce code :
- Réduction du temps d'attente inutile en évitant l'envoi complet de données avant d'avoir une confirmation.
- Économie de bande passante en évitant des transmissions inutiles si le serveur refuse la requête.
Exemple 2 : Vérification des en-têtes avant l'envoi de données
Dans certains cas, le client peut vouloir s'assurer que les en-têtes de la requête correspondent aux attentes du serveur. La réception d'un code 100 permet au client de poursuivre l'envoi des données en toute sécurité.
Comment corriger les erreurs liées au code 100 (Continue)
Exemple en Python
Supposons qu'un serveur ne renvoie pas le code 100 lorsque le client envoie une requête. Cela peut entraîner des échecs dans la transmission de données. Voici comment gérer ce scénario avec la bibliothèque requests
en Python :
import requests
response = requests.post('http://example.com/upload', data=large_file, allow_redirects=False)
if response.status_code == 100:
print("Continuez l'envoi des données.")
else:
print("Erreur : le serveur n'a pas renvoyé le code 100.")
Exemple en Java
En Java, avec HttpURLConnection
, vous pouvez gérer le code 100 de la manière suivante :
HttpURLConnection connection = (HttpURLConnection) new URL("http://example.com/upload").openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Expect", "100-continue");
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_CONTINUE) {
// Continuer l'envoi des données
} else {
// Gérer l'erreur
}
Exemple en JavaScript
Pour gérer le code 100 dans un navigateur, vous pouvez utiliser XMLHttpRequest
ou fetch
. Voici un exemple avec fetch
:
fetch('http://example.com/upload', {
method: 'POST',
body: largeFile,
headers: {
'Expect': '100-continue'
}
}).then(response => {
if (response.status === 100) {
// Continuer la requête
} else {
// Gérer l'erreur
}
});
Meilleures pratiques
- Utiliser le code 100 (Continue) uniquement lors de l'envoi de données volumineuses pour éviter des transmissions inutiles.
- Assurez-vous que le serveur prend en charge le code 100 avant de l'utiliser dans vos requêtes.
- Gérer correctement les erreurs côté client et serveur pour améliorer l'expérience utilisateur.
Questions fréquentes
- Quel comportement est attendu du client lors de la réception du code 100 ? Le client doit poursuivre l'envoi des données comme prévu.
- Que faire si le serveur ne prend pas en charge le code 100 ? Dans ce cas, le client doit envoyer les données sans attendre de confirmation, en gérant les erreurs possibles.
Code de statut | Description |
---|---|
100 | Continue - Le client peut continuer l'envoi des données. |
200 | OK - La requête a réussi. |
400 | Bad Request - La requête est invalide. |
500 | Internal Server Error - Erreur sur le serveur. |