HTTP Get请求URL最大长度?

07-20

各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过最大长度后提交情况如下:

IE6.0                :url最大长度2083个字符,超过最大长度后无法提交。
IE7.0                :url最大长度2083个字符,超过最大长度后仍然能提交,但是只能传过去2083个字符。
firefox 3.0.3     :url最大长度7764个字符,超过最大长度后无法提交。
Opera 9.52       :url最大长度7648个字符,超过最大长度后无法提交。
Google Chrome 2.0.168   :url最大长度7713个字符,超过最大长度后无法提交

HTTP请求的消息体长度

1、Transfer-Encoding = chunked
2、Content-Length = integer()
3、undefined | 0

mochiweb_request.erl

Erlang代码  [url=] HTTP Get请求URL最大长度?
[/url]

  • %% @spec body_length() -> undefined | chunked | unknown_transfer_encoding | integer()
  • %% @doc  Infer body length from transfer-encoding and content-length headers.
  • body_length() ->
  •     case get_header_value("transfer-encoding") of
  •         undefined ->
  •             case get_header_value("content-length") of
  •                 undefined ->
  •                     undefined;
  •                 Length ->
  •                     list_to_integer(Length)
  •             end;
  •         "chunked" ->
  •             chunked;
  •         Unknown ->
  •             {unknown_transfer_encoding, Unknown}
  •     end.

头域完全使用小写:
mochiweb_headers.erl

Erlang代码  [url=] HTTP Get请求URL最大长度?
[/url]

  • normalize(K) when is_list(K) ->  
  •     string:to_lower(K);  
  • normalize(K) when is_atom(K) ->  
  •     normalize(atom_to_list(K));  
  • normalize(K) when is_binary(K) ->  
  •     normalize(binary_to_list(K)).