httpcore
Содержит функциональность, используемую совместно модулями httpclient и asynchttpserver.
Нестабильный API.
Импорты
- tables, strutils, parseutils
Типы
HttpHeaders = ref object table*: TableRef[string, seq[string]] isTitleCase: bool
- Исходный код Изменить
HttpHeaderValues = distinct seq[string]
- Исходный код Изменить
HttpCode = distinct range[0 .. 599]
- Исходный код Изменить
HttpVersion = enum HttpVer11, HttpVer10
- Исходный код Изменить
HttpMethod = enum HttpHead, ## Asks for the response identical to the one that would ## correspond to a GET request, but without the response ## body. HttpGet, ## Retrieves the specified resource. HttpPost, ## Submits data to be processed to the identified ## resource. The data is included in the body of the ## request. HttpPut, ## Uploads a representation of the specified resource. HttpDelete, ## Deletes the specified resource. HttpTrace, ## Echoes back the received request, so that a client ## can see what intermediate servers are adding or ## changing in the request. HttpOptions, ## Returns the HTTP methods that the server supports ## for specified address. HttpConnect, ## Converts the request connection to a transparent ## TCP/IP tunnel, usually used for proxies. HttpPatch ## Applies partial modifications to a resource.- запрашиваемый HttpMethod Исходный код Изменить
Константы
Http100 = 100
- Исходный код Редактировать
Http101 = 101
- Исходный код Редактировать
Http200 = 200
- Исходный код Редактировать
Http201 = 201
- Исходный код Редактировать
Http202 = 202
- Исходный код Редактировать
Http203 = 203
- Исходный код Редактировать
Http204 = 204
- Исходный код Редактировать
Http205 = 205
- Исходный код Редактировать
Http206 = 206
- Исходный код Редактировать
Http300 = 300
- Исходный код Редактировать
Http301 = 301
- Исходный код Редактировать
Http302 = 302
- Исходный код Редактировать
Http303 = 303
- Исходный код Редактировать
Http304 = 304
- Исходный код Редактировать
Http305 = 305
- Исходный код Редактировать
Http307 = 307
- Исходный код Редактировать
Http308 = 308
- Исходный код Редактировать
Http400 = 400
- Исходный код Редактировать
Http401 = 401
- Исходный код Редактировать
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
- Исходный код Редактировать
Http426 = 426
- Исходный код Редактировать
Http428 = 428
- Исходный код Редактировать
Http429 = 429
- Исходный код Редактировать
Http431 = 431
- Исходный код Редактировать
Http451 = 451
- Исходный код Редактировать
Http500 = 500
- Исходный код Редактировать
Http501 = 501
- Исходный код Редактировать
Http502 = 502
- Исходный код Редактировать
Http503 = 503
- Исходный код Редактировать
Http504 = 504
- Исходный код Редактировать
Http505 = 505
- Исходный код Редактировать
httpNewLine = "\c\n"
- Исходный код Редактировать
headerLimit = 10000
- Исходный код Редактировать
Процедуры
proc clear(headers: HttpHeaders) {...}{.inline, raises: [], tags: [].}- Исходный код Редактировать
proc `[]=`(headers: HttpHeaders; key, value: string) {...}{.raises: [], tags: [].}- Устанавливает записи заголовков, связанные с
key, до указанного значения. Заменяет все существующие значения. Исходный код Редактировать proc `[]=`(headers: HttpHeaders; key: string; value: seq[string]) {...}{.raises: [], tags: [].}- Устанавливает записи заголовков, связанные с
key, до указанного списка значений. Заменяет все существующие значения. Еслиvalueпусто, удаляет записи заголовков, связанные сkey. Исходный код Редактировать proc add(headers: HttpHeaders; key, value: string) {...}{.raises: [KeyError], tags: [].}- Добавляет указанное значение к указанному ключу. Добавляет к любым существующим значениям, связанным с ключом. Исходный код Редактировать
proc del(headers: HttpHeaders; key: string) {...}{.raises: [], tags: [].}- Удаляет записи заголовков, связанные с
keyИсходный код Редактировать proc `==`(rawCode: string; code: HttpCode): bool {...}{. deprecated: "Deprecated since v1.2; use rawCode == $code instead", raises: [], tags: [].}- Сравнивает строковое представление кода состояния со значением HttpCode
- Примечание: Согласно спецификации HTTP/1.1, фраза причины является
- необязательной и должна игнорироваться клиентом, что делает эту процедуру подходящей только для сравнения
HttpCodeсо строковым представлением самого себя.
Функции
func newHttpHeaders(titleCase = false): HttpHeaders {...}{.raises: [], tags: [].}- Возвращает новый объект
HttpHeaders. ЕслиtitleCaseустановлено в true, заголовки передаются серверу в верхнем регистре (например, "Content-Length") Исходный код Редактировать func newHttpHeaders(keyValuePairs: openArray[tuple[key: string, val: string]]; titleCase = false): HttpHeaders {...}{.raises: [KeyError], tags: [].}- Возвращает новый объект
HttpHeadersиз массива. ЕслиtitleCaseустановлено в true, заголовки передаются серверу в верхнем регистре (например, "Content-Length") Исходный код Редактировать func `$`(headers: HttpHeaders): string {...}{.inline, raises: [], tags: [].}- Исходный код Редактировать
func `[]`(headers: HttpHeaders; key: string): HttpHeaderValues {...}{. raises: [KeyError], tags: [].}-
Возвращает значения, связанные с заданным
key. Если возвращаемые значения передаются процедуре, ожидающейstring, первое значение автоматически выбирается. Если значений, связанных с ключом, нет, генерируется исключение.Для доступа к нескольким значениям одного ключа используйте перегруженную
Исходный код Редактировать[]ниже или для получения всех из них, обратитесь напрямую к полюtable. func `[]`(headers: HttpHeaders; key: string; i: int): string {...}{. raises: [KeyError], tags: [].}- Возвращает
i-е значение, связанное с заданным ключом. Если значений, связанных с ключом, нет, илиi-е значение не существует, генерируется исключение. Исходный код Редактировать func contains(values: HttpHeaderValues; value: string): bool {...}{.raises: [], tags: [].}- Определяет, является ли
valueодним из значений внутриvalues. Сравнение выполняется без учета регистра. Исходный код Редактировать func hasKey(headers: HttpHeaders; key: string): bool {...}{.raises: [], tags: [].}- Исходный код Редактировать
func getOrDefault(headers: HttpHeaders; key: string; default = @[""].HttpHeaderValues): HttpHeaderValues {...}{. raises: [KeyError], tags: [].}- Возвращает значения, связанные с заданным
key. Если значений, связанных с ключом, нет, то возвращаетсяdefault. Исходный код Редактировать func len(headers: HttpHeaders): int {...}{.inline, raises: [], tags: [].}- Исходный код Редактировать
func parseHeader(line: string): tuple[key: string, value: seq[string]] {...}{. raises: [], tags: [].}-
Парсит одну строку HTTP-заголовка в пары ключ-значение.
Используется внутри
Исходный код Редактироватьasynchttpserverиhttpclientи не должна использоваться вами. func `==`(protocol: tuple[orig: string, major, minor: int]; ver: HttpVersion): bool {...}{. raises: [], tags: [].}- Исходный код Редактировать
func contains(methods: set[HttpMethod]; x: string): bool {...}{.raises: [ValueError], tags: [].}- Исходный код Редактировать
func `$`(code: HttpCode): string {...}{.raises: [], tags: [].}- Преобразует указанный
HttpCodeв HTTP-статус.Пример:
doAssert($Http404 == "404 Not Found")
Исходный код Редактировать func `==`(a, b: HttpCode): bool {...}{.borrow.}- Исходный код Редактировать
func is2xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}- Определяет, является ли
codeкодом HTTP-статуса 2xx. Исходный код Редактировать func is3xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}- Определяет, является ли
codeкодом HTTP-статуса 3xx. Исходный код Редактировать func is4xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}- Определяет, является ли
codeкодом HTTP-статуса 4xx. Исходный код Редактировать func is5xx(code: HttpCode): bool {...}{.inline, raises: [], tags: [].}- Определяет, является ли
codeкодом HTTP-статуса 5xx. Исходный код Редактировать func `$`(httpMethod: HttpMethod): string {...}{.raises: [], tags: [].}- Исходный код Редактировать
Итераторы
iterator pairs(headers: HttpHeaders): tuple[key, value: string] {...}{.raises: [], tags: [].}- Возвращает каждую пару ключ-значение. Исходный код Редактировать
Конвертеры
converter toString(values: HttpHeaderValues): string {...}{.raises: [], tags: [].}- Исходный код Редактировать
© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/httpcore.html