#include <HttpTransactHeaders.h>
Static Public Member Functions | |
static bool | is_this_http_method_supported (int method) |
static bool | is_method_cacheable (const HttpConfigParams *http_config_param, const int method) |
static bool | is_method_cache_lookupable (int method) |
static bool | is_this_a_hop_by_hop_header (const char *field_name_wks) |
static bool | is_this_method_supported (int the_scheme, int the_method) |
static void | insert_supported_methods_in_response (HTTPHdr *response, int the_scheme) |
static void | build_base_response (HTTPHdr *outgoing_response, HTTPStatus status, const char *reason_phrase, int reason_phrase_len, ink_time_t date) |
static void | copy_header_fields (HTTPHdr *src_hdr, HTTPHdr *new_hdr, bool retain_proxy_auth_hdrs, ink_time_t date=0) |
static void | convert_request (HTTPVersion outgoing_ver, HTTPHdr *outgoing_request) |
static void | convert_response (HTTPVersion outgoing_ver, HTTPHdr *outgoing_response) |
static void | convert_to_0_9_request_header (HTTPHdr *outgoing_request) |
static void | convert_to_1_0_request_header (HTTPHdr *outgoing_request) |
static void | convert_to_1_1_request_header (HTTPHdr *outgoing_request) |
static void | convert_to_0_9_response_header (HTTPHdr *outgoing_response) |
static void | convert_to_1_0_response_header (HTTPHdr *outgoing_response) |
static void | convert_to_1_1_response_header (HTTPHdr *outgoing_response) |
static ink_time_t | calculate_document_age (ink_time_t request_time, ink_time_t response_time, HTTPHdr *base_response, ink_time_t base_response_date, ink_time_t now) |
static bool | does_server_allow_response_to_be_stored (HTTPHdr *resp) |
static bool | downgrade_request (bool *origin_server_keep_alive, HTTPHdr *outgoing_request) |
static void | generate_and_set_squid_codes (HTTPHdr *header, char *via_string, HttpTransact::SquidLogInfo *squid_codes) |
static void | insert_warning_header (HttpConfigParams *http_config_param, HTTPHdr *header, HTTPWarningCode code, const char *warn_text=NULL, int warn_text_len=0) |
static void | insert_time_and_age_headers_in_response (ink_time_t request_sent_time, ink_time_t response_received_time, ink_time_t now, HTTPHdr *base, HTTPHdr *outgoing) |
static void | insert_server_header_in_response (const char *server_tag, int server_tag_size, HTTPHdr *header) |
static void | insert_via_header_in_request (HttpTransact::State *s, HTTPHdr *header) |
static void | insert_via_header_in_response (HttpTransact::State *s, HTTPHdr *header) |
static void | insert_hsts_header_in_response (HttpTransact::State *s, HTTPHdr *header) |
static bool | is_request_proxy_authorized (HTTPHdr *incoming_hdr) |
static void | insert_basic_realm_in_proxy_authenticate (const char *realm, HTTPHdr *header, bool bRevPrxy) |
static void | remove_conditional_headers (HTTPHdr *outgoing) |
static void | remove_100_continue_headers (HttpTransact::State *s, HTTPHdr *outgoing) |
static void | remove_host_name_from_url (HTTPHdr *outgoing_request) |
static void | add_global_user_agent_header_to_request (OverridableHttpConfigParams *http_txn_conf, HTTPHdr *header) |
static void | add_server_header_to_response (OverridableHttpConfigParams *http_txn_conf, HTTPHdr *header) |
static void | remove_privacy_headers_from_request (HttpConfigParams *http_config_param, OverridableHttpConfigParams *http_txn_conf, HTTPHdr *header) |
static int | nstrcpy (char *d, const char *as) |
Definition at line 31 of file HttpTransactHeaders.h.
void HttpTransactHeaders::add_global_user_agent_header_to_request | ( | OverridableHttpConfigParams * | http_txn_conf, | |
HTTPHdr * | header | |||
) | [static] |
Definition at line 969 of file HttpTransactHeaders.cc.
References Debug, MIMEHdr::field_attach(), MIMEHdr::field_create(), MIMEHdr::field_find(), MIMEHdr::field_value_set(), OverridableHttpConfigParams::global_user_agent_header, OverridableHttpConfigParams::global_user_agent_header_size, likely, MIME_FIELD_USER_AGENT, and MIME_LEN_USER_AGENT.
Referenced by HttpTransact::build_request().
void HttpTransactHeaders::add_server_header_to_response | ( | OverridableHttpConfigParams * | http_txn_conf, | |
HTTPHdr * | header | |||
) | [static] |
Definition at line 988 of file HttpTransactHeaders.cc.
References Debug, MIMEHdr::field_attach(), MIMEHdr::field_create(), MIMEHdr::field_find(), MIMEHdr::field_value_set(), likely, MIME_FIELD_SERVER, MIME_LEN_SERVER, OverridableHttpConfigParams::proxy_response_server_enabled, OverridableHttpConfigParams::proxy_response_server_string, and OverridableHttpConfigParams::proxy_response_server_string_len.
Referenced by HttpTransact::build_response(), and HttpTransact::build_response_copy().
void HttpTransactHeaders::build_base_response | ( | HTTPHdr * | outgoing_response, | |
HTTPStatus | status, | |||
const char * | reason_phrase, | |||
int | reason_phrase_len, | |||
ink_time_t | date | |||
) | [static] |
Definition at line 169 of file HttpTransactHeaders.cc.
References HTTPHdr::create(), HTTP_TYPE_RESPONSE, ink_assert, HTTPHdr::reason_set(), MIMEHdr::set_date(), HTTPHdr::status_set(), HTTPHdr::type_get(), HTTPHdr::valid(), and HTTPHdr::version_set().
Referenced by HttpTransact::build_response().
ink_time_t HttpTransactHeaders::calculate_document_age | ( | ink_time_t | request_time, | |
ink_time_t | response_time, | |||
HTTPHdr * | base_response, | |||
ink_time_t | base_response_date, | |||
ink_time_t | now | |||
) | [static] |
Definition at line 398 of file HttpTransactHeaders.cc.
References Debug, MIMEHdr::get_age(), ink_assert, and max().
Referenced by insert_time_and_age_headers_in_response(), HttpTransact::is_stale_cache_response_returnable(), HttpTransactCache::SelectFromAlternates(), and HttpTransact::what_is_document_freshness().
void HttpTransactHeaders::convert_request | ( | HTTPVersion | outgoing_ver, | |
HTTPHdr * | outgoing_request | |||
) | [static] |
Definition at line 244 of file HttpTransactHeaders.cc.
References convert_to_0_9_request_header(), convert_to_1_0_request_header(), convert_to_1_1_request_header(), and Debug.
Referenced by how_to_open_connection(), and HttpTransact::OSDNSLookup().
void HttpTransactHeaders::convert_response | ( | HTTPVersion | outgoing_ver, | |
HTTPHdr * | outgoing_response | |||
) | [static] |
Definition at line 262 of file HttpTransactHeaders.cc.
References convert_to_0_9_response_header(), convert_to_1_0_response_header(), convert_to_1_1_response_header(), and Debug.
Referenced by HttpTransact::build_response(), and HttpTransact::build_response_copy().
void HttpTransactHeaders::convert_to_0_9_request_header | ( | HTTPHdr * | outgoing_request | ) | [static] |
Definition at line 281 of file HttpTransactHeaders.cc.
References MIMEHdr::fields_clear(), HTTP_WKSIDX_GET, ink_assert, HTTPHdr::method_get_wksidx(), HTTPHdr::url_get(), URL::valid(), and HTTPHdr::version_set().
Referenced by convert_request(), and downgrade_request().
void HttpTransactHeaders::convert_to_0_9_response_header | ( | HTTPHdr * | outgoing_response | ) | [static] |
Definition at line 342 of file HttpTransactHeaders.cc.
Referenced by convert_response().
void HttpTransactHeaders::convert_to_1_0_request_header | ( | HTTPHdr * | outgoing_request | ) | [static] |
Definition at line 297 of file HttpTransactHeaders.cc.
References ink_assert, HTTPHdr::is_pragma_no_cache_set(), MIME_FIELD_PRAGMA, MIME_LEN_PRAGMA, MIME_PRESENCE_CACHE_CONTROL, MIMEHdr::presence(), HTTPHdr::url_get(), URL::valid(), MIMEHdr::value_append(), and HTTPHdr::version_set().
Referenced by convert_request(), and downgrade_request().
void HttpTransactHeaders::convert_to_1_0_response_header | ( | HTTPHdr * | outgoing_response | ) | [static] |
Definition at line 357 of file HttpTransactHeaders.cc.
References HTTPHdr::version_set().
Referenced by convert_response().
void HttpTransactHeaders::convert_to_1_1_request_header | ( | HTTPHdr * | outgoing_request | ) | [static] |
Definition at line 321 of file HttpTransactHeaders.cc.
References MIMEHdr::get_cooked_cc_mask(), MIMEHdr::get_cooked_pragma_no_cache(), ink_assert, MIME_FIELD_CACHE_CONTROL, MIME_LEN_CACHE_CONTROL, HTTPHdr::url_get(), URL::valid(), MIMEHdr::value_append(), and HTTPHdr::version_get().
Referenced by convert_request().
void HttpTransactHeaders::convert_to_1_1_response_header | ( | HTTPHdr * | outgoing_response | ) | [static] |
Definition at line 375 of file HttpTransactHeaders.cc.
References ink_assert, HTTPHdr::status_get(), and HTTPHdr::version_set().
Referenced by convert_response().
void HttpTransactHeaders::copy_header_fields | ( | HTTPHdr * | src_hdr, | |
HTTPHdr * | new_hdr, | |||
bool | retain_proxy_auth_hdrs, | |||
ink_time_t | date = 0 | |||
) | [static] |
Definition at line 191 of file HttpTransactHeaders.cc.
References HTTPHdr::copy(), MIMEHdr::field_delete(), hdrtoken_index_to_flags(), ink_assert, MIMEHdr::iter_get_first(), MIMEHdr::iter_get_next(), MIME_FLAGS_HOPBYHOP, MIME_FLAGS_PROXYAUTH, MIME_WKSIDX_DATE, MIMEHdr::set_date(), and HTTPHdr::valid().
Referenced by HttpTransact::build_request(), HttpTransact::build_response(), and HttpTransact::build_response_copy().
bool HttpTransactHeaders::does_server_allow_response_to_be_stored | ( | HTTPHdr * | resp | ) | [static] |
Definition at line 457 of file HttpTransactHeaders.cc.
References MIMEHdr::get_cooked_cc_mask(), MIMEHdr::get_cooked_pragma_no_cache(), MIME_COOKED_MASK_CC_NO_CACHE, and MIME_COOKED_MASK_CC_NO_STORE.
Referenced by HttpTransact::initialize_state_variables_from_response().
bool HttpTransactHeaders::downgrade_request | ( | bool * | origin_server_keep_alive, | |
HTTPHdr * | outgoing_request | |||
) | [static] |
Definition at line 469 of file HttpTransactHeaders.cc.
References convert_to_0_9_request_header(), convert_to_1_0_request_header(), HTTP_WKSIDX_GET, HTTPHdr::method_get_wksidx(), and HTTPHdr::version_get().
Referenced by HttpTransact::handle_cache_operation_on_forward_server_response(), and HttpTransact::handle_no_cache_operation_on_forward_server_response().
void HttpTransactHeaders::generate_and_set_squid_codes | ( | HTTPHdr * | header, | |
char * | via_string, | |||
HttpTransact::SquidLogInfo * | squid_codes | |||
) | [static] |
Definition at line 500 of file HttpTransactHeaders.cc.
References Debug, HttpTransact::_SquidLogInfo::hier_code, HttpTransact::_SquidLogInfo::hit_miss_code, HttpTransact::_SquidLogInfo::log_code, HTTPHdr::reason_get(), SQUID_HIER_PARENT_HIT, SQUID_HIER_SIBLING_HIT, SQUID_HIT_RESERVED, SQUID_LOG_TCP_IMS_MISS, SQUID_LOG_TCP_MISS, VIA_CACHE_RESULT, VIA_CLIENT_ERROR, VIA_CLIENT_IMS, VIA_CLIENT_NO_CACHE, VIA_CLIENT_REQUEST, VIA_DETAIL_CACHE_LOOKUP, VIA_DETAIL_CACHE_TYPE, VIA_DETAIL_HIT_CONDITIONAL, VIA_DETAIL_HIT_SERVED, VIA_DETAIL_ICP_CONNECT, VIA_DETAIL_ICP_SUCCESS, VIA_DETAIL_MISS_CLIENT, VIA_DETAIL_MISS_CONDITIONAL, VIA_DETAIL_MISS_CONFIG, VIA_DETAIL_MISS_EXPIRED, VIA_DETAIL_MISS_METHOD, VIA_DETAIL_PARENT, VIA_DETAIL_PP_CONNECT, VIA_DETAIL_PP_SUCCESS, VIA_DETAIL_TUNNEL, VIA_DETAIL_TUNNEL_NO_FORWARD, VIA_ERROR_AUTHORIZATION, VIA_ERROR_CACHE_READ, VIA_ERROR_CONNECTION, VIA_ERROR_DNS_FAILURE, VIA_ERROR_FORBIDDEN, VIA_ERROR_HEADER_SYNTAX, VIA_ERROR_SERVER, VIA_ERROR_TIMEOUT, VIA_ERROR_TYPE, VIA_IN_CACHE_FRESH, VIA_IN_CACHE_STALE, VIA_IN_RAM_CACHE_FRESH, VIA_SERVER_ERROR, VIA_SERVER_NOT_MODIFIED, and VIA_SERVER_RESULT.
Referenced by HttpTransact::build_response().
void HttpTransactHeaders::insert_basic_realm_in_proxy_authenticate | ( | const char * | realm, | |
HTTPHdr * | header, | |||
bool | bRevPrxy | |||
) | [static] |
Definition at line 908 of file HttpTransactHeaders.cc.
References MIMEHdr::field_attach(), MIMEHdr::field_create(), MIMEHdr::field_value_set(), MIME_FIELD_PROXY_AUTHENTICATE, MIME_FIELD_WWW_AUTHENTICATE, MIME_LEN_PROXY_AUTHENTICATE, MIME_LEN_WWW_AUTHENTICATE, and nstrcpy().
void HttpTransactHeaders::insert_hsts_header_in_response | ( | HttpTransact::State * | s, | |
HTTPHdr * | header | |||
) | [static] |
Definition at line 821 of file HttpTransactHeaders.cc.
References memcpy, MIME_FIELD_STRICT_TRANSPORT_SECURITY, MIME_LEN_STRICT_TRANSPORT_SECURITY, OverridableHttpConfigParams::proxy_response_hsts_include_subdomains, OverridableHttpConfigParams::proxy_response_hsts_max_age, HttpTransact::State::txn_conf, and MIMEHdr::value_set().
Referenced by HttpTransact::build_response().
void HttpTransactHeaders::insert_server_header_in_response | ( | const char * | server_tag, | |
int | server_tag_size, | |||
HTTPHdr * | header | |||
) | [static] |
Definition at line 699 of file HttpTransactHeaders.cc.
References likely, and MIMEHdr::set_server().
void HttpTransactHeaders::insert_supported_methods_in_response | ( | HTTPHdr * | response, | |
int | the_scheme | |||
) | [static] |
Definition at line 83 of file HttpTransactHeaders.cc.
References ats_free(), ats_malloc(), MIMEHdr::field_attach(), MIMEHdr::field_create(), MIMEHdr::field_find(), hdrtoken_is_wks(), hdrtoken_wks_to_index(), hdrtoken_wks_to_length(), ink_assert, is_this_method_supported(), HdrHeapSDKHandle::m_heap, MIMEHdr::m_mime, memcpy, methods, MIME_FIELD_ALLOW, MIME_LEN_ALLOW, and MIMEField::value_append().
Referenced by HttpTransact::handle_trace_and_options_requests().
void HttpTransactHeaders::insert_time_and_age_headers_in_response | ( | ink_time_t | request_sent_time, | |
ink_time_t | response_received_time, | |||
ink_time_t | now, | |||
HTTPHdr * | base, | |||
HTTPHdr * | outgoing | |||
) | [static] |
Definition at line 682 of file HttpTransactHeaders.cc.
References calculate_document_age(), MIMEHdr::get_date(), MIMEHdr::set_age(), and MIMEHdr::set_date().
Referenced by HttpTransact::build_response().
void HttpTransactHeaders::insert_via_header_in_request | ( | HttpTransact::State * | s, | |
HTTPHdr * | header | |||
) | [static] |
Definition at line 752 of file HttpTransactHeaders.cc.
References hdrtoken_index_to_length(), hdrtoken_index_to_wks(), HttpTransact::State::http_config_param, HTTP_MAJOR, HTTP_MINOR, ink_assert, OverridableHttpConfigParams::insert_request_via_string, Machine::instance(), HTTPVersion::m_version, memcpy, MIME_FIELD_VIA, MIME_LEN_VIA, nstrcpy(), HttpTransact::State::orig_scheme, HttpConfigParams::proxy_hostname, HttpConfigParams::proxy_hostname_len, HttpConfigParams::proxy_request_via_string, HttpConfigParams::proxy_request_via_string_len, HttpTransact::State::txn_conf, MIMEHdr::value_append(), HTTPHdr::version_get(), VIA_CLIENT, VIA_SERVER, and HttpTransact::State::via_string.
Referenced by HttpTransact::build_request().
void HttpTransactHeaders::insert_via_header_in_response | ( | HttpTransact::State * | s, | |
HTTPHdr * | header | |||
) | [static] |
Definition at line 841 of file HttpTransactHeaders.cc.
References hdrtoken_index_to_length(), hdrtoken_index_to_wks(), HttpTransact::State::http_config_param, HTTP_MAJOR, HTTP_MINOR, ink_assert, OverridableHttpConfigParams::insert_response_via_string, HTTPVersion::m_version, memcpy, MIME_FIELD_VIA, MIME_LEN_VIA, HttpTransact::State::next_hop_scheme, nstrcpy(), HttpConfigParams::proxy_hostname, HttpConfigParams::proxy_hostname_len, HttpConfigParams::proxy_response_via_string, HttpConfigParams::proxy_response_via_string_len, HttpTransact::State::txn_conf, MIMEHdr::value_append(), HTTPHdr::version_get(), VIA_CACHE, VIA_PROXY, and HttpTransact::State::via_string.
Referenced by HttpTransact::build_response().
void HttpTransactHeaders::insert_warning_header | ( | HttpConfigParams * | http_config_param, | |
HTTPHdr * | header, | |||
HTTPWarningCode | code, | |||
const char * | warn_text = NULL , |
|||
int | warn_text_len = 0 | |||
) | [static] |
Definition at line 661 of file HttpTransactHeaders.cc.
References MIME_FIELD_WARNING, MIME_LEN_WARNING, HttpConfigParams::proxy_response_via_string, HttpConfigParams::proxy_response_via_string_len, and MIMEHdr::value_set().
Referenced by HttpTransact::build_response_from_cache(), HttpTransact::handle_cache_operation_on_forward_server_response(), and HttpTransact::handle_no_cache_operation_on_forward_server_response().
bool HttpTransactHeaders::is_method_cache_lookupable | ( | int | method | ) | [static] |
Definition at line 42 of file HttpTransactHeaders.cc.
References HTTP_WKSIDX_DELETE, HTTP_WKSIDX_GET, HTTP_WKSIDX_HEAD, HTTP_WKSIDX_POST, HTTP_WKSIDX_PURGE, HTTP_WKSIDX_PUSH, and HTTP_WKSIDX_PUT.
Referenced by HttpTransact::is_request_cache_lookupable().
bool HttpTransactHeaders::is_method_cacheable | ( | const HttpConfigParams * | http_config_param, | |
const int | method | |||
) | [static] |
Definition at line 34 of file HttpTransactHeaders.cc.
References HttpConfigParams::cache_post_method, HTTP_WKSIDX_GET, HTTP_WKSIDX_HEAD, and HTTP_WKSIDX_POST.
Referenced by HttpTransact::is_cache_response_returnable(), and HttpTransact::is_response_cacheable().
bool HttpTransactHeaders::is_request_proxy_authorized | ( | HTTPHdr * | incoming_hdr | ) | [inline, static] |
Definition at line 136 of file HttpTransactHeaders.h.
References ink_assert.
Referenced by HttpTransact::check_request_validity().
bool HttpTransactHeaders::is_this_a_hop_by_hop_header | ( | const char * | field_name_wks | ) | [static] |
Definition at line 55 of file HttpTransactHeaders.cc.
References hdrtoken_is_wks(), hdrtoken_wks_to_flags(), MIME_FIELD_KEEP_ALIVE, and MIME_FLAGS_HOPBYHOP.
Referenced by HttpTransact::merge_response_header_with_cached_header().
bool HttpTransactHeaders::is_this_http_method_supported | ( | int | method | ) | [inline, static] |
Definition at line 104 of file HttpTransactHeaders.h.
References HTTP_WKSIDX_CONNECT, HTTP_WKSIDX_DELETE, HTTP_WKSIDX_GET, HTTP_WKSIDX_HEAD, HTTP_WKSIDX_OPTIONS, HTTP_WKSIDX_POST, HTTP_WKSIDX_PURGE, HTTP_WKSIDX_PUSH, HTTP_WKSIDX_PUT, and HTTP_WKSIDX_TRACE.
Referenced by is_this_method_supported().
bool HttpTransactHeaders::is_this_method_supported | ( | int | the_scheme, | |
int | the_method | |||
) | [static] |
Definition at line 68 of file HttpTransactHeaders.cc.
References HTTP_WKSIDX_CONNECT, HTTP_WKSIDX_GET, is_this_http_method_supported(), URL_WKSIDX_HTTP, URL_WKSIDX_HTTPS, URL_WKSIDX_WS, and URL_WKSIDX_WSS.
Referenced by HttpTransact::check_request_validity(), and insert_supported_methods_in_response().
int HttpTransactHeaders::nstrcpy | ( | char * | d, | |
const char * | as | |||
) | [inline, static] |
Definition at line 117 of file HttpTransactHeaders.h.
Referenced by insert_basic_realm_in_proxy_authenticate(), insert_via_header_in_request(), and insert_via_header_in_response().
void HttpTransactHeaders::remove_100_continue_headers | ( | HttpTransact::State * | s, | |
HTTPHdr * | outgoing | |||
) | [static] |
Definition at line 946 of file HttpTransactHeaders.cc.
References MIMEHdr::field_delete(), HttpTransact::State::hdr_info, HTTP_LEN_100_CONTINUE, HTTP_VALUE_100_CONTINUE, MIME_FIELD_EXPECT, and MIME_LEN_EXPECT.
Referenced by HttpTransact::build_request().
void HttpTransactHeaders::remove_conditional_headers | ( | HTTPHdr * | outgoing | ) | [static] |
Definition at line 932 of file HttpTransactHeaders.cc.
References MIMEHdr::field_delete(), MIME_FIELD_IF_MATCH, MIME_FIELD_IF_MODIFIED_SINCE, MIME_FIELD_IF_NONE_MATCH, MIME_FIELD_IF_UNMODIFIED_SINCE, MIME_LEN_IF_MATCH, MIME_LEN_IF_MODIFIED_SINCE, MIME_LEN_IF_NONE_MATCH, MIME_LEN_IF_UNMODIFIED_SINCE, MIME_PRESENCE_IF_MATCH, MIME_PRESENCE_IF_MODIFIED_SINCE, MIME_PRESENCE_IF_NONE_MATCH, MIME_PRESENCE_IF_UNMODIFIED_SINCE, and MIMEHdr::presence().
Referenced by HttpTransact::build_request().
void HttpTransactHeaders::remove_host_name_from_url | ( | HTTPHdr * | outgoing_request | ) | [static] |
Definition at line 961 of file HttpTransactHeaders.cc.
References URL::nuke_proxy_stuff(), and HTTPHdr::url_get().
Referenced by HttpTransact::build_request(), HttpTransact::handle_response_from_icp_suggested_host(), HttpTransact::handle_response_from_parent(), and how_to_open_connection().
void HttpTransactHeaders::remove_privacy_headers_from_request | ( | HttpConfigParams * | http_config_param, | |
OverridableHttpConfigParams * | http_txn_conf, | |||
HTTPHdr * | header | |||
) | [static] |
Definition at line 1012 of file HttpTransactHeaders.cc.
References HttpConfigParams::anonymize_other_header_list, OverridableHttpConfigParams::anonymize_remove_client_ip, OverridableHttpConfigParams::anonymize_remove_cookie, OverridableHttpConfigParams::anonymize_remove_from, OverridableHttpConfigParams::anonymize_remove_referer, OverridableHttpConfigParams::anonymize_remove_user_agent, Debug, MIMEHdr::field_delete(), StrList::head, Str::len, MIME_FIELD_CLIENT_IP, MIME_FIELD_COOKIE, MIME_FIELD_FROM, MIME_FIELD_REFERER, MIME_FIELD_USER_AGENT, MIME_LEN_CLIENT_IP, MIME_LEN_COOKIE, MIME_LEN_FROM, MIME_LEN_REFERER, MIME_LEN_USER_AGENT, Str::next, HttpCompat::parse_comma_list(), and Str::str.
Referenced by HttpTransact::build_request().