модуль http
Модуль http инкапсулирует обработку HTTP-запросов и ответов, что позволяет нам легко создать http-сервер или смоделировать клиент для инициирования http-запроса. Используя модуль http, разработчики могут легко писать и обрабатывать код, связанный с протоколом HTTP.
Ниже приведен простой пример создания веб-сервера и возврата ответа 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();
В этом примере мы представляем модуль http, затем определяем объект http-сервера и привязываем его к локальному номеру порта 8080. Когда запрос отправляется на этот номер порта, ответом будет строка «Hello World!».
В то же время модуль http также содержит клиентские объекты,http.ClientИмитируйте среду браузера для кэширования файлов cookie и сохранения их во время посещения.urlПри переносе соответствующего объекта HTTP-клиента cookie. ты можешь использовать этоhttp.ClientДоступ к запросам интерфейса http, выполнение http-загрузок и ряд операций, связанных с http. Нижеhttp.ClientПримеры применения:
1
2
3
4var http = require('http');
var httpClient = new http.Client();
httpClient.get('http://fibjs.org');
В приведенном выше примереhttp.Clientобъект, а затем вызывает get
метод для инициирования HTTP-запроса GET к fibjs.org.
кроме того,http.ClientЕсть и другие свойства и методы, которые можно вызывать, например cookies
и т. д.
Модуль https — это псевдоним модуля http. Вы require('https')
также можете использовать модуль http.
объект
Request
Создайте объект http-запроса, см.HttpRequest
1HttpRequest http.Request;
Response
Создайте объект ответа http, см.HttpResponse
1HttpResponse http.Response;
Cookie
Создайте объект cookie http, см.HttpCookie
1HttpCookie http.Cookie;
Server
Создайте http-сервер, см.HttpServer
1HttpServer http.Server;
Client
Создайте http-клиент, см.HttpClient
1HttpClient http.Client;
HttpsServer
Создайте https-сервер, см.HttpsServer
1HttpsServer http.HttpsServer;
Handler
Создайте объект обработчика протокола http, см.HttpHandler
1HttpHandler http.Handler;
Repeater
Создайте объект обработчика пересылки HTTP-запросов, см.HttpRepeater
1HttpRepeater http.Repeater;
статическая функция
fileHandler
Создайте статический файловый процессор http для ответа на сообщения http с помощью статических файлов.
1
2
3static Handler http.fileHandler(String root,
Object mimes = {},
Boolean autoIndex = false);
Параметры звонка:
- root: строка, корневой путь к файлу.
- mimes: Объект, расширенные настройки MIME
- autoIndex: логическое значение, поддерживать ли просмотр файлов каталога, значение по умолчанию — false, не поддерживается.
Результаты возврата:
- Handler, возвращает статический файловый процессор для обработки http-сообщений
fileHandler поддерживает предварительное сжатие gzip. Когда запрос принимает кодировку gzip и файл filename.ext.gz существует по тому же пути, этот файл будет возвращен напрямую, что позволяет избежать нагрузки на сервер, вызванной повторным сжатием.
setClientCert
Установить сертификат клиента по умолчанию
1
2static http.setClientCert(X509Cert crt,
PKey key);
Параметры звонка:
- crt:X509Cert, сертификат, используемый для отправки на сервер для проверки клиента
- key:PKey, закрытый ключ, используется для разговора с клиентом
request
Отправьте http-запрос к указанному объекту потока и верните результат.
1
2static HttpResponse http.request(Stream conn,
HttpRequest req) async;
Параметры звонка:
- conn:Stream, указывает объект потока для обработки запроса
- req:HttpRequest, для отправкиHttpRequestобъект
Результаты возврата:
- HttpResponse, возвращает ответ сервера
Отправьте http-запрос к указанному объекту потока и верните результат.
1
2
3static HttpResponse http.request(Stream conn,
HttpRequest req,
SeekableStream response_body) async;
Параметры звонка:
- conn:Stream, указывает объект потока для обработки запроса
- req:HttpRequest, для отправкиHttpRequestобъект
- response_body:SeekableStream, укажите поток ответа.body
Результаты возврата:
- HttpResponse, возвращает ответ сервера
запрос указанurlи верните результат
1
2
3static HttpResponse http.request(String method,
String url,
Object opts = {}) async;
Параметры звонка:
- method: строка, укажите метод HTTP-запроса: GET, POST и т. д.
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
Используйте метод GET для запроса указанногоurlи возвращает результат, который эквивалентен запросу("GET", ...)
1
2static HttpResponse http.request(String url,
Object opts = {}) async;
Параметры звонка:
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
Указаны параметры запросаurlи верните результат
1static HttpResponse http.request(Object opts) async;
Параметры звонка:
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
get
Используйте метод GET для запроса указанногоurlи возвращает результат, который эквивалентен запросу("GET", ...)
1
2static HttpResponse http.get(String url,
Object opts = {}) async;
Параметры звонка:
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
post
Используйте метод POST для запроса указанногоurlи возвращает результат, эквивалентный запросу("POST", ...)
1
2static HttpResponse http.post(String url,
Object opts = {}) async;
Параметры звонка:
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
del
Используйте метод DELETE для запроса указанногоurlи возвращает результат, эквивалентный запросу("DELETE", ...)
1
2static HttpResponse http.del(String url,
Object opts = {}) async;
Параметры звонка:
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
put
Используйте метод PUT для запроса указанногоurlи возвращает результат, эквивалентный запросу("PUT", ...)
1
2static HttpResponse http.put(String url,
Object opts = {}) async;
Параметры звонка:
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
patch
Используйте метод PATCH для запроса указанногоurlи возвращает результат, эквивалентный запросу("PATCH", ...)
1
2static HttpResponse http.patch(String url,
Object opts = {}) async;
Параметры звонка:
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
head
Используйте метод HEAD для запроса указанногоurlи возвращает результат, эквивалентный запросу("HEAD", ...)
1
2static HttpResponse http.head(String url,
Object opts = {}) async;
Параметры звонка:
- url: Строка, укажитеurl, должен быть полным содержащим хостомurl
- opts: Объект, укажите дополнительную информацию
Результаты возврата:
- HttpResponse, возвращает ответ сервера
opts содержит дополнительные параметры запроса, поддерживаемые следующим образом:
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": {}
}
Среди них тело,json, пакет не должен появляться одновременно. По умолчанию используется {}, которое не содержит никакой дополнительной информации.
статические свойства
STATUS_CODES
Object возвращает коллекцию стандартных кодов состояния ответа HTTP и их соответствующие краткие описания.
1static readonly Object http.STATUS_CODES;
cookies
NArray, возвращает http-клиентHttpCookieсписок объектов
1static readonly NArray http.cookies;
timeout
Целое число, запрос и установка тайм-аута
1static Integer http.timeout;
enableCookie
Логическое значение, переключатель функции cookie, включен по умолчанию
1static Boolean http.enableCookie;
autoRedirect
Логическое значение, переключатель функции автоматического перенаправления, включен по умолчанию
1static Boolean http.autoRedirect;
enableEncoding
Логическое значение, переключатель функции автоматической декомпрессии, включено по умолчанию.
1static Boolean http.enableEncoding;
maxHeadersCount
Целое число, запросите и установите максимальное количество заголовков запроса, значение по умолчанию — 128.
1static Integer http.maxHeadersCount;
maxHeaderSize
Целое число, запросите и установите максимальную длину заголовка запроса, значение по умолчанию — 8192.
1static Integer http.maxHeaderSize;
maxBodySize
Целое число, запросите и установите максимальный размер тела в МБ, значение по умолчанию - -1, ограничений по размеру нет.
1static Integer http.maxBodySize;
userAgent
Строка, запрос и установка идентификатора браузера в HTTP-запросе.
1static String http.userAgent;
poolSize
Целое число, запросите и установите максимальное количество подключений к кэшу, поддерживающему активность, по умолчанию 128.
1static Integer http.poolSize;
poolTimeout
Целое число, запрос и установка тайм-аута подключения к кэшу поддержания активности, по умолчанию 10 000 мс.
1static Integer http.poolTimeout;
http_proxy
Строка, запрос и установка прокси-сервера HTTP-запроса, поддержка прокси-сервера http/https/socks5.
1static String http.http_proxy;
https_proxy
Строка, запрос и настройка прокси-сервера запроса https, поддержка прокси-сервера http/https/socks5, если не установлено или установлено пустое значение, http_proxy будет использоваться повторно.
1static String http.https_proxy;