Provided by: erlang-manpages_25.2.3+dfsg-1_all
NAME
httpd_util - Miscellaneous utility functions to be used when implementing Erlang web server API modules.
DESCRIPTION
This module provides the Erlang web server API module programmer with miscellaneous utility functions. Note: Note the module is only recommended for using with httpd - for other cases it should be considered as deprecated.
EXPORTS
convert_request_date(DateString) -> ErlDate|bad_date Types: DateString = string() ErlDate = calendar:datetime() convert_request_date/1 converts DateString to the Erlang date format. DateString must be in one of the three date formats defined in RFC 2616. create_etag(FileInfo) -> Etag Types: FileInfo = file_info() Etag = string() create_etag/1 calculates the Etag for a file from its size and time for last modification. FileInfo is a record defined in kernel/include/file.hrl. day(NthDayOfWeek) -> DayOfWeek Types: NthDayOfWeek = 1-7 DayOfWeek = string() day/1 converts the day of the week (NthDayOfWeek) from an integer (1-7) to an abbreviated string, that is: 1 = "Mon", 2 = "Tue", ..., 7 = "Sat". decode_hex(HexValue) -> DecValue Types: HexValue = DecValue = string() Converts the hexadecimal value HexValue into its decimal equivalent (DecValue). flatlength(NestedList) -> Size Types: NestedList = list() Size = integer() flatlength/1 computes the size of the possibly nested list NestedList, which can contain binaries. hexlist_to_integer(HexString) -> Number Types: Number = integer() HexString = string() hexlist_to_integer converts the hexadecimal value of HexString to an integer. integer_to_hexlist(Number) -> HexString Types: Number = integer() HexString = string() integer_to_hexlist/1 returns a string representing Number in a hexadecimal form. lookup(ETSTable,Key) -> Result lookup(ETSTable,Key,Undefined) -> Result Types: ETSTable = ets_table() Key = term() Result = term() | undefined | Undefined Undefined = term() lookup extracts {Key,Value} tuples from ETSTable and returns the Value associated with Key. If ETSTable is of type bag, only the first Value associated with Key is returned. lookup/2 returns undefined and lookup/3 returns Undefined if no Value is found. lookup_mime(ConfigDB,Suffix) lookup_mime(ConfigDB,Suffix,Undefined) -> MimeType Types: ConfigDB = ets_table() Suffix = string() MimeType = string() | undefined | Undefined Undefined = term() lookup_mime returns the MIME type associated with a specific file suffix as specified in the file mime.types (located in the config directory). lookup_mime_default(ConfigDB,Suffix) lookup_mime_default(ConfigDB,Suffix,Undefined) -> MimeType Types: ConfigDB = ets_table() Suffix = string() MimeType = string() | undefined | Undefined Undefined = term() lookup_mime_default returns the MIME type associated with a specific file suffix as specified in the mime.types file (located in the config directory). If no appropriate association is found, the value of DefaultType is returned. message(StatusCode,PhraseArgs,ConfigDB) -> Message Types: StatusCode = 301 | 400 | 403 | 404 | 500 | 501 | 504 PhraseArgs = term() ConfigDB = ets_table Message = string() message/3 returns an informative HTTP 1.1 status string in HTML. Each StatusCode requires a specific PhraseArgs: 301: string(): A URL pointing at the new document position. 400 | 401 | 500: none (no PhraseArgs). 403 | 404: string(): A Request-URI as described in RFC 2616. 501: {Method,RequestURI,HTTPVersion}: The HTTP Method, Request-URI, and HTTP-Version as defined in RFC 2616. 504: string(): A string describing why the service was unavailable. month(NthMonth) -> Month Types: NthMonth = 1-12 Month = string() month/1 converts the month NthMonth as an integer (1-12) to an abbreviated string, that is: 1 = "Jan", 2 = "Feb", ..., 12 = "Dec". multi_lookup(ETSTable,Key) -> Result Types: ETSTable = ets_table() Key = term() Result = [term()] multi_lookup extracts all {Key,Value} tuples from an ETSTable and returns all Values associated with Key in a list. reason_phrase(StatusCode) -> Description Types: StatusCode = 100 | 200 | 201 | 202 | 204 | 205 | 206 | 300 | 301 | 302 | 303 | 304 | 308 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 500 | 501 | 502 | 503 | 504 | 505 Description = string() reason_phrase returns Description of an HTTP 1.1 StatusCode, for example, 200 is "OK" and 201 is "Created". For more information, see RFC 2616. rfc1123_date() -> RFC1123Date rfc1123_date(Date) -> RFC1123Date Types: Date = calendar:datetime() RFC1123Date = string() rfc1123_date/0 returns the current date in RFC 1123 format. rfc_date/1 converts the date in the Erlang format to the RFC 1123 date format. split(String,RegExp,N) -> SplitRes Types: String = RegExp = string() SplitRes = {ok, FieldList} | {error, errordesc()} Fieldlist = [string()] N = integer split/3 splits String in N chunks using RegExp. split/3 is equivalent to regexp:split/2 with the exception that N defines the maximum number of fields in FieldList. split_script_path(RequestLine) -> Split Types: RequestLine = string() Split = not_a_script | {Path, PathInfo, QueryString} Path = QueryString = PathInfo = string() split_script_path/1 is equivalent to split_path/1 with one exception. If the longest possible path is not a regular, accessible, and executable file, then not_a_script is returned. split_path(RequestLine) -> {Path,QueryStringOrPathInfo} Types: RequestLine = Path = QueryStringOrPathInfo = string() split_path/1 splits RequestLine in a file reference (Path), and a QueryString or a PathInfo string as specified in RFC 2616. A QueryString is isolated from Path with a question mark (?) and PathInfo with a slash (/). In the case of a QueryString, everything before ? is a Path and everything after ? is a QueryString. In the case of a PathInfo, RequestLine is scanned from left-to-right on the hunt for longest possible Path being a file or a directory. Everything after the longest possible Path, isolated with a /, is regarded as PathInfo. The resulting Path is decoded using decode_hex/1 before delivery. strip(String) -> Stripped Types: String = Stripped = string() strip/1 removes any leading or trailing linear white space from the string. Linear white space is to be read as horizontal tab or space. suffix(FileName) -> Suffix Types: FileName = Suffix = string() suffix/1 is equivalent to filename:extension/1 with the exception that Suffix is returned without a leading dot (.).
SEE ALSO
httpd(3erl)