modulehttp
Le module http encapsule le traitement des requêtes et réponses HTTP, nous permettant de créer facilement un serveur http ou de simuler un client pour lancer une requête http. Grâce au module http, les développeurs peuvent facilement écrire et traiter du code lié au protocole HTTP.
Voici un exemple simple pour créer un serveur Web et renvoyer une réponse Hello World :
1
2
3
4
5
6
7const http = require('http');
const server = new http.Server(8080, function(request) {
request.response.write('Hello World!');
});
server.start();
Dans cet exemple, nous introduisons le module http, puis définissons un objet serveur http et le lions au numéro de port local 8080. Lorsqu'une requête est envoyée à ce numéro de port, la réponse sera définie sur la chaîne "Hello World!".
Parallèlement, le module http contient également des objets clients,http.ClientSimuler l'environnement du navigateur pour mettre en cache les cookies et les stocker lors de la visiteurlLors du transport de l'objet client http cookie correspondant. tu peux l'utiliserhttp.ClientAccédez aux requêtes de l'interface http, effectuez des téléchargements http et une série d'opérations liées à http. Ci-dessous se trouvehttp.ClientExemples d'applications :
1
2
3
4var http = require('http');
var httpClient = new http.Client();
httpClient.get('http://fibjs.org');
Dans l'exemple ci-dessus, unhttp.Clientobjet, puis appelle get
la méthode pour lancer une requête http GET vers fibjs.org.
en outre,http.ClientIl existe d'autres propriétés et méthodes qui peuvent être appelées, telles que cookies
etc.
Le module https est un alias du module http. Vous require('https')
pouvez également utiliser le module http.
objet
Request
Créez un objet de requête http, voirHttpRequest
1HttpRequest http.Request;
Response
Créez un objet de réponse http, voirHttpResponse
1HttpResponse http.Response;
Cookie
Créez un objet cookie http, voirHttpCookie
1HttpCookie http.Cookie;
Server
Créez un serveur http, voirHttpServer
1HttpServer http.Server;
Client
Créez un client http, voirHttpClient
1HttpClient http.Client;
HttpsServer
Créez un serveur https, voirHttpsServer
1HttpsServer http.HttpsServer;
Handler
Créez un objet gestionnaire de protocole http, voirHttpHandler
1HttpHandler http.Handler;
Repeater
Créez un objet de gestionnaire de transfert de requête http, voirHttpRepeater
1HttpRepeater http.Repeater;
fonction statique
fileHandler
Créez un processeur de fichiers statiques http pour répondre aux messages http avec des fichiers statiques
1
2
3static Handler http.fileHandler(String root,
Object mimes = {},
Boolean autoIndex = false);
Paramètres d'appel :
- root: Chaîne, chemin racine du fichier
- mimes: Objet, paramètres MIME étendus
- autoIndex: Booléen, s'il faut prendre en charge la navigation dans les fichiers du répertoire, la valeur par défaut est false, non pris en charge
Résultats de retour :
- Handler, renvoie un processeur de fichiers statiques pour traiter les messages http
fileHandler prend en charge la pré-compression gzip. Lorsque la requête accepte le codage gzip et que le fichier filename.ext.gz existe dans le même chemin, ce fichier sera renvoyé directement, évitant ainsi la charge du serveur causée par une compression répétée.
setClientCert
Définir le certificat client par défaut
1
2static http.setClientCert(X509Cert crt,
PKey key);
Paramètres d'appel :
- crt:X509Cert, certificat, utilisé pour envoyer au serveur pour vérifier le client
- key:PKey, clé privée, utilisée pour parler au client
request
Envoyer une requête http à l'objet de flux spécifié et renvoyer le résultat
1
2static HttpResponse http.request(Stream conn,
HttpRequest req) async;
Paramètres d'appel :
- conn:Stream, spécifie l'objet flux pour gérer la requête
- req:HttpRequest, être envoyéHttpRequestobjet
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
Envoyer une requête http à l'objet de flux spécifié et renvoyer le résultat
1
2
3static HttpResponse http.request(Stream conn,
HttpRequest req,
SeekableStream response_body) async;
Paramètres d'appel :
- conn:Stream, spécifie l'objet flux pour gérer la requête
- req:HttpRequest, être envoyéHttpRequestobjet
- response_body:SeekableStream, spécifiez le flux de réponse.body
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
demande spécifiéeurl, et renvoie le résultat
1
2
3static HttpResponse http.request(String method,
String url,
Object opts = {}) async;
Paramètres d'appel :
- method: String, spécifiez la méthode de requête http : GET, POST, etc.
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {},
"response_body": SeekableStream // specify response.body stream
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
Utilisez la méthode GET pour demander le spécifiéurl, et renvoie le résultat, qui équivaut à request("GET", ...)
1
2static HttpResponse http.request(String url,
Object opts = {}) async;
Paramètres d'appel :
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
Options de demande spécifiéesurl, et renvoie le résultat
1static HttpResponse http.request(Object opts) async;
Paramètres d'appel :
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
get
Utilisez la méthode GET pour demander le spécifiéurl, et renvoie le résultat, qui équivaut à request("GET", ...)
1
2static HttpResponse http.get(String url,
Object opts = {}) async;
Paramètres d'appel :
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
post
Utilisez la méthode POST pour demander le spécifiéurl, et renvoie le résultat, qui équivaut à request("POST", ...)
1
2static HttpResponse http.post(String url,
Object opts = {}) async;
Paramètres d'appel :
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
del
Utilisez la méthode DELETE pour demander le spécifiéurl, et renvoie le résultat, qui équivaut à request("DELETE", ...)
1
2static HttpResponse http.del(String url,
Object opts = {}) async;
Paramètres d'appel :
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
put
Utilisez la méthode PUT pour demander le spécifiéurl, et renvoie le résultat, qui équivaut à request("PUT", ...)
1
2static HttpResponse http.put(String url,
Object opts = {}) async;
Paramètres d'appel :
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
patch
Utilisez la méthode PATCH pour demander le spécifiéurl, et renvoie le résultat, qui équivaut à request("PATCH", ...)
1
2static HttpResponse http.patch(String url,
Object opts = {}) async;
Paramètres d'appel :
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
head
Utilisez la méthode HEAD pour demander le spécifiéurl, et renvoie le résultat, qui équivaut à request("HEAD", ...)
1
2static HttpResponse http.head(String url,
Object opts = {}) async;
Paramètres d'appel :
- url: Chaîne, précisezurl, doit être l'hôte contenant completurl
- opts: Objet, spécifiez des informations supplémentaires
Résultats de retour :
- HttpResponse, renvoie la réponse du serveur
opts contient des options supplémentaires pour la demande, prises en charge comme suit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"method": "GET", // specify the http request method: GET, POST, etc, default: GET.
"protocol": "http",
"slashes": true,
"username": "",
"password": "",
"hostname": "",
"port": "",
"pathname": "",
"query": {},
"body": SeekableStream | Buffer | String | {},
"json": {},
"pack": {},
"headers": {}
}
Parmi eux le corps,json, le pack ne doit pas apparaître en même temps. La valeur par défaut est {}, qui ne contient aucune information supplémentaire
propriétés statiques
STATUS_CODES
Objet, renvoie une collection de codes d'état de réponse HTTP standard et leurs brèves descriptions respectives.
1static readonly Object http.STATUS_CODES;
cookies
NArray, renvoie le client httpHttpCookieliste d'objets
1static readonly NArray http.cookies;
timeout
Entier, requête et définition du délai d'attente
1static Integer http.timeout;
enableCookie
Booléen, commutateur de fonction cookie, activé par défaut
1static Boolean http.enableCookie;
autoRedirect
Booléen, commutateur de fonction de redirection automatique, activé par défaut
1static Boolean http.autoRedirect;
enableEncoding
Booléen, commutateur de fonction de décompression automatique, activé par défaut
1static Boolean http.enableEncoding;
maxHeadersCount
Entier, interrogez et définissez le nombre maximum d'en-têtes de requête, la valeur par défaut est 128
1static Integer http.maxHeadersCount;
maxHeaderSize
Entier, interrogez et définissez la longueur maximale de l'en-tête de requête, la valeur par défaut est 8192
1static Integer http.maxHeaderSize;
maxBodySize
Entier, interrogez et définissez la taille maximale du corps, en Mo, la valeur par défaut est -1, aucune limite de taille
1static Integer http.maxBodySize;
userAgent
Chaîne, interrogation et définition de l'identifiant du navigateur dans la requête http
1static String http.userAgent;
poolSize
Nombre entier, interrogez et définissez le nombre maximum de connexions de cache persistantes, par défaut 128
1static Integer http.poolSize;
poolTimeout
Nombre entier, interrogez et définissez le délai d'expiration de la connexion au cache keep-alive, par défaut 10 000 ms
1static Integer http.poolTimeout;
http_proxy
Chaîne, interrogation et définition du proxy de requête http, prise en charge du proxy http/https/socks5
1static String http.http_proxy;
https_proxy
Chaîne, interrogation et définition du proxy de requête https, prise en charge du proxy http/https/socks5, s'il n'est pas défini ou défini sur vide, http_proxy sera réutilisé
1static String http.https_proxy;