Модуль ядра HTTP является ключевым модулем для сети узлов.
- Свойства
- http. методы
- http. СТАТУС_КОДЫ
- СТАТУС_КОДЫ
- Методы
- http.Создать сервер()
- http.запрос()
- http.получить()
- Занятия
- http. Агент
- http. Запрос клиента
- http. Сервер
- http. Ответ Сервера
- http. Входящее Сообщение
Он может быть включен с помощью
const http = require('http')Модуль предоставляет некоторые свойства и методы, а также некоторые классы.
Свойства
http. методы
В этом свойстве перечислены все поддерживаемые методы HTTP:
> require('http').METHODS
[ 'ACL',
'BIND',
'CHECKOUT',
'CONNECT',
'COPY',
'DELETE',
'GET',
'HEAD',
'LINK',
'LOCK',
'M-SEARCH',
'MERGE',
'MKACTIVITY',
'MKCALENDAR',
'MKCOL',
'MOVE',
'NOTIFY',
'OPTIONS',
'PATCH',
'POST',
'PROPFIND',
'PROPPATCH',
'PURGE',
'PUT',
'REBIND',
'REPORT',
'SEARCH',
'SUBSCRIBE',
'TRACE',
'UNBIND',
'UNLINK',
'UNLOCK',
'UNSUBSCRIBE' ]http. СТАТУС_КОДЫ
В этом свойстве перечислены все коды состояния HTTP и их описание:
> require('http').STATUS_CODES
{ '100': 'Continue',
'101': 'Switching Protocols',
'102': 'Processing',
'200': 'OK',
'201': 'Created',
'202': 'Accepted',
'203': 'Non-Authoritative Information',
'204': 'No Content',
'205': 'Reset Content',
'206': 'Partial Content',
'207': 'Multi-Status',
'208': 'Already Reported',
'226': 'IM Used',
'300': 'Multiple Choices',
'301': 'Moved Permanently',
'302': 'Found',
'303': 'See Other',
'304': 'Not Modified',
'305': 'Use Proxy',
'307': 'Temporary Redirect',
'308': 'Permanent Redirect',
'400': 'Bad Request',
'401': 'Unauthorized',
'402': 'Payment Required',
'403': 'Forbidden',
'404': 'Not Found',
'405': 'Method Not Allowed',
'406': 'Not Acceptable',
'407': 'Proxy Authentication Required',
'408': 'Request Timeout',
'409': 'Conflict',
'410': 'Gone',
'411': 'Length Required',
'412': 'Precondition Failed',
'413': 'Payload Too Large',
'414': 'URI Too Long',
'415': 'Unsupported Media Type',
'416': 'Range Not Satisfiable',
'417': 'Expectation Failed',
'418': 'I\'m a teapot',
'421': 'Misdirected Request',
'422': 'Unprocessable Entity',
'423': 'Locked',
'424': 'Failed Dependency',
'425': 'Unordered Collection',
'426': 'Upgrade Required',
'428': 'Precondition Required',
'429': 'Too Many Requests',
'431': 'Request Header Fields Too Large',
'451': 'Unavailable For Legal Reasons',
'500': 'Internal Server Error',
'501': 'Not Implemented',
'502': 'Bad Gateway',
'503': 'Service Unavailable',
'504': 'Gateway Timeout',
'505': 'HTTP Version Not Supported',
'506': 'Variant Also Negotiates',
'507': 'Insufficient Storage',
'508': 'Loop Detected',
'509': 'Bandwidth Limit Exceeded',
'510': 'Not Extended',
'511': 'Network Authentication Required' }В этом свойстве перечислены все коды состояния HTTP и их описание:
Указывает на глобальный экземпляр объекта Агента, который является экземпляром http. Агент класс.
Он используется для управления сохраняемостью и повторным использованием соединений для HTTP-клиентов и является ключевым компонентом HTTP-сети узла.
Подробнее в http. Агент описание класса позже.
Методы
http.Создать сервер()
Верните новый экземпляр http. Сервер класс.
Использование:
const server = http.createServer((req, res) => {
//handle every single request with this callback
})http.запрос()
Выполняет HTTP-запрос к серверу, создавая экземпляр http. Запрос клиента класс.
http.получить()
Аналогично http.request() , но автоматически устанавливает метод HTTP для GET и автоматически вызывает req.end() .
Занятия
Модуль HTTP предоставляет 5 классов:
http. Агентhttp. Запрос клиентаhttp. Серверhttp. Ответ Сервераhttp. Входящее Сообщение
http. Агент
Узел создает глобальный экземпляр http. Агент класс для управления сохраняемостью и повторным использованием соединений для HTTP-клиентов, ключевого компонента HTTP-сети узла.
Этот объект гарантирует, что каждый запрос, отправленный на сервер, будет помещен в очередь и один сокет будет использован повторно.
Он также поддерживает пул сокетов. Это важно по соображениям производительности.
http. Запрос клиента
/| http. Клиентский запрос объект создается, когда http.request() или вызывается http.get() .
Когда получен ответ, событие response вызывается вместе с ответом с помощью http. Входящее сообщение экземпляр в качестве аргумента.
Возвращенные данные ответа могут быть прочитаны 2 способами:
- вы можете вызвать
response.read()метод - в обработчике событий
responseвы можете настроить прослушиватель событий для событияdata, чтобы вы могли прослушивать потоковые данные.
http. Сервер
Этот класс обычно создается и возвращается при создании нового сервера с помощью http.createServer() .
Как только у вас есть объект сервера, у вас есть доступ к его методам:
закрыть()останавливает сервер от приема новых подключенийlisten()запускает HTTP-сервер и прослушивает соединения
http. Ответ Сервера
Созданный с помощью http. Сервер и передается в качестве второго параметра в запрос событие, которое он запускает.
Широко известный и используемый в коде как res :
const server = http.createServer((req, res) => {
//res is an http.ServerResponse object
})Метод, который вы всегда будете вызывать в обработчике, – это end() , который закрывает ответ, сообщение завершено, и сервер может отправить его клиенту. Он должен вызываться при каждом ответе.
Эти методы используются для взаимодействия с заголовками HTTP:
getHeaderNames()получить список имен HTTP-заголовков уже установленоgetHeaders()получить копию HTTP-заголовков уже установленоsetHeader ('имя заголовка', значение)задает значение заголовка HTTPgetHeader ('имя заголовка')получает HTTP-заголовок уже установленоremoveHeader('имя заголовка')удаляет HTTP-заголовок уже установленоимеет заголовок ('имя заголовка')возвращает значение true, если в ответе задан этот заголовокотправленные заголовки()возвращают значение true, если заголовки уже были отправлены клиенту
После обработки заголовков вы можете отправить их клиенту, вызвав response.write Head() , который принимает код состояния в качестве первого параметра, необязательное сообщение о состоянии и объект заголовков.
Для отправки данных клиенту в теле ответа вы используете write() . Он отправит буферизованные данные в поток ответов HTTP.
Если заголовки еще не были отправлены с помощью response.writeHead() , он сначала отправит заголовки с кодом состояния и сообщением, заданными в запросе, которые вы можете отредактировать, установив StatusCode и сообщение о состоянии значения свойств:
response.statusCode = 500 response.statusMessage = 'Internal Server Error'
http. Входящее Сообщение
/| http. Входящее сообщение объект создается:
http. Серверпри прослушиваниизапросасобытиеhttp. Запрос клиентапри прослушиванииответасобытие
Его можно использовать для доступа к ответу:
- статус, используя его
код статусаисообщение о состоянииметоды - заголовки, использующие его
заголовкиметод илинеобработанные заголовки - Метод HTTP, использующий его
методметод - HTTP-версия, использующая
http-версиюметод - URL-адрес с использованием метода
url - базовый сокет с использованием
сокетаметод
Доступ к данным осуществляется с помощью потоков, начиная с http. Входящее сообщение реализует Читаемый интерфейс потока.
Оригинал: “https://flaviocopes.com/node-module-http/”