Базовый модуль модуля

модуль http

Модуль http инкапсулирует обработку HTTP-запросов и ответов, что позволяет нам легко создать http-сервер или смоделировать клиент для инициирования http-запроса. Используя модуль http, разработчики могут легко писать и обрабатывать код, связанный с протоколом HTTP.

Ниже приведен простой пример создания веб-сервера и возврата ответа hello world:

1 2 3 4 5 6 7
const 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 4
var 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

1
HttpRequest http.Request;

Response

Создайте объект ответа http, см.HttpResponse

1
HttpResponse http.Response;

Создайте объект cookie http, см.HttpCookie

1
HttpCookie http.Cookie;

Server

Создайте http-сервер, см.HttpServer

1
HttpServer http.Server;

Client

Создайте http-клиент, см.HttpClient

1
HttpClient http.Client;

HttpsServer

Создайте https-сервер, см.HttpsServer

1
HttpsServer http.HttpsServer;

Handler

Создайте объект обработчика протокола http, см.HttpHandler

1
HttpHandler http.Handler;

Repeater

Создайте объект обработчика пересылки HTTP-запросов, см.HttpRepeater

1
HttpRepeater http.Repeater;

статическая функция

fileHandler

Создайте статический файловый процессор http для ответа на сообщения http с помощью статических файлов.

1 2 3
static 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 2
static http.setClientCert(X509Cert crt, PKey key);

Параметры звонка:

  • crt:X509Cert, сертификат, используемый для отправки на сервер для проверки клиента
  • key:PKey, закрытый ключ, используется для разговора с клиентом

request

Отправьте http-запрос к указанному объекту потока и верните результат.

1 2
static HttpResponse http.request(Stream conn, HttpRequest req) async;

Параметры звонка:

  • conn:Stream, указывает объект потока для обработки запроса
  • req:HttpRequest, для отправкиHttpRequestобъект

Результаты возврата:

  • HttpResponse, возвращает ответ сервера

Отправьте http-запрос к указанному объекту потока и верните результат.

1 2 3
static HttpResponse http.request(Stream conn, HttpRequest req, SeekableStream response_body) async;

Параметры звонка:

  • conn:Stream, указывает объект потока для обработки запроса
  • req:HttpRequest, для отправкиHttpRequestобъект
  • response_body:SeekableStream, укажите поток ответа.body

Результаты возврата:

  • HttpResponse, возвращает ответ сервера

запрос указанurlи верните результат

1 2 3
static 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 2
static 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и верните результат

1
static 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 2
static 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 2
static 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 2
static 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 2
static 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 2
static 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 для запроса указанногоurlи возвращает результат, эквивалентный запросу("HEAD", ...)

1 2
static 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 и их соответствующие краткие описания.

1
static readonly Object http.STATUS_CODES;

cookies

NArray, возвращает http-клиентHttpCookieсписок объектов

1
static readonly NArray http.cookies;

timeout

Целое число, запрос и установка тайм-аута

1
static Integer http.timeout;

enableCookie

Логическое значение, переключатель функции cookie, включен по умолчанию

1
static Boolean http.enableCookie;

autoRedirect

Логическое значение, переключатель функции автоматического перенаправления, включен по умолчанию

1
static Boolean http.autoRedirect;

enableEncoding

Логическое значение, переключатель функции автоматической декомпрессии, включено по умолчанию.

1
static Boolean http.enableEncoding;

maxHeadersCount

Целое число, запросите и установите максимальное количество заголовков запроса, значение по умолчанию — 128.

1
static Integer http.maxHeadersCount;

maxHeaderSize

Целое число, запросите и установите максимальную длину заголовка запроса, значение по умолчанию — 8192.

1
static Integer http.maxHeaderSize;

maxBodySize

Целое число, запросите и установите максимальный размер тела в МБ, значение по умолчанию - -1, ограничений по размеру нет.

1
static Integer http.maxBodySize;

userAgent

Строка, запрос и установка идентификатора браузера в HTTP-запросе.

1
static String http.userAgent;

poolSize

Целое число, запросите и установите максимальное количество подключений к кэшу, поддерживающему активность, по умолчанию 128.

1
static Integer http.poolSize;

poolTimeout

Целое число, запрос и установка тайм-аута подключения к кэшу поддержания активности, по умолчанию 10 000 мс.

1
static Integer http.poolTimeout;

http_proxy

Строка, запрос и установка прокси-сервера HTTP-запроса, поддержка прокси-сервера http/https/socks5.

1
static String http.http_proxy;

https_proxy

Строка, запрос и настройка прокси-сервера запроса https, поддержка прокси-сервера http/https/socks5, если не установлено или установлено пустое значение, http_proxy будет использоваться повторно.

1
static String http.https_proxy;