要約
HTTP のためのユーティリティ関数を提供します。
目次
- モジュール関数
- 定数
モジュール関数
dequote(str) -> String[permalink][rdoc][edit]-
与えられた文字列からダブルクオートとバックスラッシュを削除して返します。
- [PARAM]
str: - 文字列を指定します。
- [PARAM]
escape(str) -> String[permalink][rdoc][edit]-
与えられた文字列を数値参照文字列に変換します。
以下の正規表現を使用して変換します。
control = (0x0..0x1f).collect{|c| c.chr }.join + "\x7f" space = " " delims = '<>#%"' unwise = '{}|\\^[]`' nonascii = (0x80..0xff).collect{|c| c.chr }.join /[#{Regexp.escape(control + space + delims + unwise + nonascii)}]/n- [PARAM]
str: - 文字列を指定します。
- [PARAM]
escape8bit(str) -> String[permalink][rdoc][edit]-
与えられた文字列を数値参照文字列に変換します。
- [PARAM]
str: - 文字列を指定します。
- [PARAM]
escape_form(str) -> StringRuby 3.0 から[permalink][rdoc][edit]-
与えられた文字列を application/x-www-form-urlencoded 形式の文字列に変換します。スペースは
+に変換されます。- [PARAM]
str: - 文字列を指定します。
require 'webrick' p WEBrick::HTTPUtils.escape_form('foo bar+baz') # => "foo+bar%2Bbaz"[SEE_ALSO] WEBrick::HTTPUtils.#unescape_form
- [PARAM]
escape_path(str) -> String[permalink][rdoc][edit]-
与えられた文字列を数値参照文字列に変換します。
以下の正規表現を使用して変換します。
num = '0123456789' lowalpha = 'abcdefghijklmnopqrstuvwxyz' upalpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' mark = '-_.!~*\'()' unreserved = num + lowalpha + upalpha + mark /[^#{Regexp.escape(unreserved + ":@&=+$,")}]/n- [PARAM]
str: - 文字列を指定します。
- [PARAM]
load_mime_types(file) -> Hash[permalink][rdoc][edit]-
Apache の mime.types ファイル形式の file を読み込み拡張子をキー、MIME タイプを値とするハッシュを返します。キーも値も文字列です。
- [PARAM]
file: - Apache の mime.types ファイル形式のファイルの名前を文字列で指定します。
require 'webrick' p WEBrick::HTTPUtils.load_mime_types('/etc/mime.types') # => {"htm"=>"text/html", "rpm"=>"application/x-rpm", ... } - [PARAM]
mime_type(filename, mime_tab) -> String[permalink][rdoc][edit]-
ファイル名 filename の拡張子をもとにその MIME タイプを指定された mime_tab から探して文字列として返します。MIME タイプが見つからない場合は "application/octet-stream" を返します。
- [PARAM]
filename: - ファイル名を文字列で指定します。
- [PARAM]
mime_tab: - 拡張子をキー、MIME タイプを値とするハッシュを指定します。
require 'webrick' include WEBrick::HTTPUtils p mime_type('index.html', DefaultMimeTypes) #=> "text/html" p mime_type('index.html.ja', DefaultMimeTypes) #=> "text/html" p mime_type('index.hoge', DefaultMimeTypes) #=> "application/octet-stream" - [PARAM]
parse_header(raw) -> Hash[permalink][rdoc][edit]-
HTTP ヘッダをパースして結果をハッシュに格納して返します。
- [PARAM]
raw: - 生のヘッダを表す文字列を指定します。
- [PARAM]
parse_range_header(ranges_specifier)[permalink][rdoc][edit]-
[TODO] ???
- [PARAM]
ranges_specifier:
- [PARAM]
quote(str) -> String[permalink][rdoc][edit]-
与えられた文字列をダブルクオートでクオートします。
与えられた文字列に含まれているダブルクオートはバックスラッシュでエスケープします。
- [PARAM]
str: - 文字列を指定します。
- [PARAM]
split_header_value(str) -> Array[permalink][rdoc][edit]-
HTTP ヘッダの値を分割して返します。
- [PARAM]
str: - HTTP ヘッダの値を返します。
- [PARAM]
unescape(str) -> String[permalink][rdoc][edit]-
与えられた文字列を数値参照文字列から元の文字列に変換します。
- [PARAM]
str: - 文字列を指定します。
- [PARAM]
unescape_form(str) -> StringRuby 3.0 から[permalink][rdoc][edit]-
WEBrick::HTTPUtils.#escape_form で変換された文字列を元の文字列に戻します。
+はスペースに変換されます。- [PARAM]
str: - 文字列を指定します。
require 'webrick' p WEBrick::HTTPUtils.unescape_form('foo+bar%2Bbaz') # => "foo bar+baz"[SEE_ALSO] WEBrick::HTTPUtils.#escape_form
- [PARAM]
定数
DefaultMimeTypes -> Hash[permalink][rdoc][edit]-
ファイルの拡張子をキー、 MIME Type を値とする要素を持つハッシュです。