字句。

MIME と HTTP でやや定義が異なる。差は「{」「}」の有無。

RFC 2045 token = qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7E]+/;

* HTTP における定義

RFC 2616 token = qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]+/;
[REFS[
- [6] [CITE@en[Character set "$rfc2616:token-char"]] ([TIME[2014-06-25 14:11:22 +09:00]] 版) <http://chars.suikawiki.org/set/%24rfc2616%3Atoken-char>
]REFS]

[REFS[
- [4] [CITE@en[RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing]] ([TIME[2014-06-07 01:59:35 +09:00]] 版) <https://tools.ietf.org/html/rfc7230#section-3.2.6>
- [5] [CITE@en[Character set "$rfc7230:tchar"]] ([TIME[2014-06-25 14:10:50 +09:00]] 版) <http://chars.suikawiki.org/set/%24rfc7230%3Atchar>
- [7] [CITE@en[MIME Sniffing Standard]] ([TIME[2018-01-09 18:13:17 +09:00]]) <https://mimesniff.spec.whatwg.org/#http-token-code-point>
]REFS]

* CGI における定義

[1] 
[PRE(ABNF code)[
      CHAR          = alpha | digit | separator | "!" | "#" | "$" |
                      "%" | "&" | "'" | "*" | "+" | "-" | "." | "`" |
                      "^" | "_" | "{" | "|" | "}" | "~" | CTL
      CTL           = <any control character>
      separator     = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" |
                      "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" |
                      "}" | SP | HT
      token         = 1*<any CHAR except CTLs or separators>
]PRE]

** 仕様書
[REFS[
- [2] [CITE@en[RFC 3875 - The Common Gateway Interface (CGI) Version 1.1]] ([TIME[2011-11-20 06:09:05 +09:00]] 版) <http://tools.ietf.org/html/rfc3875#page-7>
]REFS]

** メモ

[3] この定義を [[ASCII]] に当てはめると [[RFC 2045]] の定義と一致します。 (なぜか [[RFC 2616]]
の定義ではありません。)

* 関連

[8] 名前のよく似た [CODE[token68]] とは無関係です。

* メモ
