std/httpcore
ИсточникРедактироватьСодержит функциональность, общую для модулей httpclient и asynchttpserver.
Нестабильный API.
Импорты
- since, tables, strutils, parseutils
Типы
HttpCode = distinct range[0 .. 599]
- Источник Редактировать
HttpHeaders = ref object table*: TableRef[string, seq[string]]
- Источник Редактировать
HttpHeaderValues = distinct seq[string]
- Источник Редактировать
HttpMethod = enum HttpHead = "HEAD", ## Asks for the response identical to the one that ## would correspond to a GET request, but without ## the response body. HttpGet = "GET", ## Retrieves the specified resource. HttpPost = "POST", ## Submits data to be processed to the identified ## resource. The data is included in the body of ## the request. HttpPut = "PUT", ## Uploads a representation of the specified ## resource. HttpDelete = "DELETE", ## Deletes the specified resource. HttpTrace = "TRACE", ## Echoes back the received request, so that a ## client ## can see what intermediate servers are adding or ## changing in the request. HttpOptions = "OPTIONS", ## Returns the HTTP methods that the server ## supports for specified address. HttpConnect = "CONNECT", ## Converts the request connection to a transparent ## TCP/IP tunnel, usually used for proxies. HttpPatch = "PATCH" ## Applies partial modifications to a resource.- запрашиваемый HttpMethod Источник Редактировать
HttpVersion = enum HttpVer11, HttpVer10
- Источник Редактировать
Константы
headerLimit = 10000
- Исходный код Редактировать
Http100 = 100
- Исходный код Редактировать
Http101 = 101
- Исходный код Редактировать
Http102 = 102
- https://tools.ietf.org/html/rfc2518.html WebDAV Исходный код Редактировать
Http103 = 103
- https://tools.ietf.org/html/rfc8297.html Предварительные подсказки Исходный код Редактировать
Http200 = 200
- Исходный код Редактировать
Http201 = 201
- Исходный код Редактировать
Http202 = 202
- Исходный код Редактировать
Http203 = 203
- Исходный код Редактировать
Http204 = 204
- Исходный код Редактировать
Http205 = 205
- Исходный код Редактировать
Http206 = 206
- Исходный код Редактировать
Http207 = 207
- https://tools.ietf.org/html/rfc4918.html WebDAV Исходный код Редактировать
Http208 = 208
- https://tools.ietf.org/html/rfc5842.html WebDAV, Раздел 7.1 Исходный код Редактировать
Http226 = 226
- https://tools.ietf.org/html/rfc3229.html Кодирование дельты, Раздел 10.4.1 Исходный код Редактировать
Http300 = 300
- Исходный код Редактировать
Http301 = 301
- Исходный код Редактировать
Http302 = 302
- Исходный код Редактировать
Http303 = 303
- Исходный код Редактировать
Http304 = 304
- Исходный код Редактировать
Http305 = 305
- Исходный код Редактировать
Http307 = 307
- Исходный код Редактировать
Http308 = 308
- Исходный код Редактировать
Http400 = 400
- Исходный код Редактировать
Http401 = 401
- Исходный код Редактировать
Http402 = 402
- https://tools.ietf.org/html/rfc7231.html Требуется оплата, Раздел 6.5.2 Исходный код Редактировать
Http403 = 403
- Исходный код Редактировать
Http404 = 404
- Исходный код Редактировать
Http405 = 405
- Исходный код Редактировать
Http406 = 406
- Исходный код Редактировать
Http407 = 407
- Исходный код Редактировать
Http408 = 408
- Исходный код Редактировать
Http409 = 409
- Исходный код Редактировать
Http410 = 410
- Исходный код Редактировать
Http411 = 411
- Исходный код Редактировать
Http412 = 412
- Исходный код Редактировать
Http413 = 413
- Исходный код Редактировать
Http414 = 414
- Исходный код Редактировать
Http415 = 415
- Исходный код Редактировать
Http416 = 416
- Исходный код Редактировать
Http417 = 417
- Исходный код Редактировать
Http418 = 418
- Исходный код Редактировать
Http421 = 421
- Исходный код Редактировать
Http422 = 422
- Исходный код Редактировать
Http423 = 423
- https://tools.ietf.org/html/rfc4918.html WebDAV, Раздел 11.3 Исходный код Редактировать
Http424 = 424
- https://tools.ietf.org/html/rfc4918.html WebDAV, Раздел 11.3 Исходный код Редактировать
Http425 = 425
- https://tools.ietf.org/html/rfc8470.html Ранние данные Исходный код Редактировать
Http426 = 426
- Исходный код Редактировать
Http428 = 428
- Исходный код Редактировать
Http429 = 429
- Исходный код Редактировать
Http431 = 431
- Исходный код Редактировать
Http451 = 451
- Исходный код Редактировать
Http500 = 500
- Исходный код Редактировать
Http501 = 501
- Исходный код Редактировать
Http502 = 502
- Исходный код Редактировать
Http503 = 503
- Исходный код Редактировать
Http504 = 504
- Исходный код Редактировать
Http505 = 505
- Исходный код Редактировать
Http506 = 506
- https://tools.ietf.org/html/rfc2295.html Переговоры по содержимому, Раздел 8.1 Исходный код Редактировать
Http507 = 507
- https://tools.ietf.org/html/rfc4918.html WebDAV, Раздел 11.5 Исходный код Редактировать
Http508 = 508
- https://tools.ietf.org/html/rfc5842.html WebDAV, Раздел 7.2 Исходный код Редактировать
Http510 = 510
- https://tools.ietf.org/html/rfc2774.html Фреймворк расширений, Раздел 7 Исходный код Редактировать
Http511 = 511
- https://tools.ietf.org/html/rfc6585.html Дополнительный код состояния, Раздел 6 Исходный код Редактировать
httpNewLine = "\r\n"
- Исходный код Редактировать
Процедуры
func `$`(code: HttpCode): string {....raises: [], tags: [], forbids: [].}- Преобразует указанный
HttpCodeв HTTP-статус.Пример:
doAssert($Http404 == "404 Not Found")
Исходный код Редактировать func `$`(headers: HttpHeaders): string {.inline, ...raises: [], tags: [], forbids: [].}- Исходный код Редактировать
func `==`(a, b: HttpCode): bool {.borrow, ...raises: [], tags: [], forbids: [].}- Исходный код Редактировать
func `==`(protocol: tuple[orig: string, major, minor: int]; ver: HttpVersion): bool {. ...raises: [], tags: [], forbids: [].}- Исходный код Редактировать
func `[]`(headers: HttpHeaders; key: string): HttpHeaderValues {. ...raises: [KeyError], tags: [], forbids: [].}-
Возвращает значения, связанные с заданным
key. Если возвращаемые значения передаются процедуре, ожидающейstring, то выбирается первое значение. Если значений, связанных с ключом, нет, то генерируется исключение.Для доступа к нескольким значениям одного ключа используйте перегруженную процедуру
Исходный код Редактировать[]ниже, или для получения всех значений обратитесь напрямую к полюtable. func `[]`(headers: HttpHeaders; key: string; i: int): string {. ...raises: [KeyError], tags: [], forbids: [].}- Возвращает
i-е значение, связанное с заданным ключом. Если значений, связанных с ключом, нет, илиi-е значение не существует, генерируется исключение. Исходный код Редактировать proc `[]=`(headers: HttpHeaders; key, value: string) {....raises: [], tags: [], forbids: [].}- Устанавливает записи заголовка, связанные с
key, в указанное значение. Заменяет все существующие значения. Исходный код Редактировать proc `[]=`(headers: HttpHeaders; key: string; value: seq[string]) {....raises: [], tags: [], forbids: [].}- Устанавливает записи заголовка, связанные с
key, в указанный список значений. Заменяет все существующие значения. Еслиvalueпусто, то удаляет записи заголовка, связанные сkey. Исходный код Редактировать proc add(headers: HttpHeaders; key, value: string) {....raises: [KeyError], tags: [], forbids: [].}- Добавляет указанное значение к указанному ключу. Добавляет к существующим значениям, связанным с ключом. Исходный код Редактировать
proc clear(headers: HttpHeaders) {.inline, ...raises: [], tags: [], forbids: [].}- Исходный код Редактировать
func contains(methods: set[HttpMethod]; x: string): bool {....raises: [ValueError], tags: [], forbids: [].}- Исходный код Редактировать
func contains(values: HttpHeaderValues; value: string): bool {....raises: [], tags: [], forbids: [].}- Определяет, является ли
valueодним из значений внутриvalues. Сравнение выполняется без учета регистра. Исходный код Редактировать proc del(headers: HttpHeaders; key: string) {....raises: [], tags: [], forbids: [].}- Удаляет записи заголовка, связанные с
keyИсходный код Редактировать func getOrDefault(headers: HttpHeaders; key: string; default = @[""].HttpHeaderValues): HttpHeaderValues {. ...raises: [KeyError], tags: [], forbids: [].}- Возвращает значения, связанные с заданным
key. Если значений, связанных с ключом, нет, то возвращаетсяdefault. Исходный код Редактировать func hasKey(headers: HttpHeaders; key: string): bool {....raises: [], tags: [], forbids: [].}- Исходный код Редактировать
func is1xx(code: HttpCode): bool {.inline, ...raises: [], tags: [], forbids: [].}- Определяет, является ли
codeкодом HTTP-статуса 1xx.Пример:
doAssert is1xx(HttpCode(103))
Исходный код Редактировать func is2xx(code: HttpCode): bool {.inline, ...raises: [], tags: [], forbids: [].}- Определяет, является ли
codeкодом HTTP-статуса 2xx. Исходный код Редактировать func is3xx(code: HttpCode): bool {.inline, ...raises: [], tags: [], forbids: [].}- Определяет, является ли
codeкодом HTTP-статуса 3xx. Исходный код Редактировать func is4xx(code: HttpCode): bool {.inline, ...raises: [], tags: [], forbids: [].}- Определяет, является ли
codeкодом HTTP-статуса 4xx. Исходный код Редактировать func is5xx(code: HttpCode): bool {.inline, ...raises: [], tags: [], forbids: [].}- Определяет, является ли
codeкодом HTTP-статуса 5xx. Исходный код Редактировать func len(headers: HttpHeaders): int {.inline, ...raises: [], tags: [], forbids: [].}- Исходный код Редактировать
func newHttpHeaders(keyValuePairs: openArray[tuple[key: string, val: string]]; titleCase = false): HttpHeaders {....raises: [KeyError], tags: [], forbids: [].}- Возвращает новый объект
HttpHeadersиз массива. ЕслиtitleCaseустановлено в true, заголовки передаются серверу в верхнем регистре (например, "Content-Length") Исходный код Редактировать func newHttpHeaders(titleCase = false): HttpHeaders {....raises: [], tags: [], forbids: [].}- Возвращает новый объект
HttpHeaders. ЕслиtitleCaseустановлено в true, заголовки передаются серверу в верхнем регистре (например, "Content-Length") Исходный код Редактировать func parseHeader(line: string): tuple[key: string, value: seq[string]] {. ...raises: [], tags: [], forbids: [].}-
Разбирает отдельную строку HTTP-заголовка в пары ключ-значение.
Используется
Исходный код Редактироватьasynchttpserverиhttpclientвнутри и не должна использоваться вами. func toCaseInsensitive(headers: HttpHeaders; s: string): string {.inline, ...raises: [], tags: [], forbids: [].}- Только для внутреннего использования. Не используйте. Исходный код Редактировать
Итераторы
iterator pairs(headers: HttpHeaders): tuple[key, value: string] {....raises: [], tags: [], forbids: [].}- Возвращает каждую пару ключ-значение. Исходный код Редактировать
Конвертеры
converter toString(values: HttpHeaderValues): string {....raises: [], tags: [], forbids: [].}- Исходный код Редактировать
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/httpcore.html