module WEBrick::HTTPUtils

要約

HTTP のためのユーティリティ関数を提供します。

目次

モジュール関数
定数

モジュール関数

dequote(str) -> String[permalink][rdoc]

与えられた文字列からダブルクオートとバックスラッシュを削除して返します。

[PARAM] str:
文字列を指定します。
escape(str) -> String[permalink][rdoc]

与えられた文字列を数値参照文字列に変換します。

以下の正規表現を使用して変換します。

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:
文字列を指定します。
escape8bit(str) -> String[permalink][rdoc]

与えられた文字列を数値参照文字列に変換します。

[PARAM] str:
文字列を指定します。
escape_path(str) -> String[permalink][rdoc]

与えられた文字列を数値参照文字列に変換します。

以下の正規表現を使用して変換します。

num      = '0123456789'
lowalpha = 'abcdefghijklmnopqrstuvwxyz'
upalpha  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
mark     = '-_.!~*\'()'
unreserved = num + lowalpha + upalpha + mark
/[^#{Regexp.escape(unreserved + ":@&=+$,")}]/n
[PARAM] str:
文字列を指定します。
load_mime_types(file) -> Hash[permalink][rdoc]

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", ... }
mime_type(filename, mime_tab) -> String[permalink][rdoc]

ファイル名 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"
parse_header(raw) -> Hash[permalink][rdoc]

HTTP ヘッダをパースして結果をハッシュに格納して返します。

[PARAM] raw:
生のヘッダを表す文字列を指定します。
parse_range_header(ranges_specifier)[permalink][rdoc]

[TODO] ???

[PARAM] ranges_specifier:
quote(str) -> String[permalink][rdoc]

与えられた文字列をダブルクオートでクオートします。

与えられた文字列に含まれているダブルクオートはバックスラッシュでエスケープします。

[PARAM] str:
文字列を指定します。
split_header_value(str) -> Array[permalink][rdoc]

HTTP ヘッダの値を分割して返します。

[PARAM] str:
HTTP ヘッダの値を返します。
unescape(str) -> String[permalink][rdoc]

与えられた文字列を数値参照文字列から元の文字列に変換します。

[PARAM] str:
文字列を指定します。

定数

DefaultMimeTypes -> Hash[permalink][rdoc]

ファイルの拡張子をキー、 MIME Type を値とする要素を持つハッシュです。