`

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

    博客分类:
  • Java
阅读更多

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
分享到:
评论

相关推荐

    js的参数有长度限制吗?发现不能超过2083个字符

    总结以上内容,我们可以看出文件描述中的“js的函数参数长度限制”实际上是由于通过URL传递参数时遇到的HTTP协议限制。JavaScript函数本身对参数长度并没有明确限制,但当参数通过URL传递时,会受到浏览器和服务器端...

    Http协议内容总结 http协议包含哪些内容 Http协议的请求方法 Http协议实现的原理机制 get与post请求的区别

    ### Http协议内容总结 HTTP(HyperText Transfer Protocol)即超文本传输协议,是客户端与服务器之间数据传输的格式规范。本文将围绕HTTP协议的核心概念、请求方法、实现机制及其细节展开详细讨论。 #### HTTP协议...

    网络协议分析期末总结

    ### 网络协议分析期末总结 #### 第一章:基础概念 1. **TCP四层模型与OSI七层模型之间的对应关系及其各层功能** - **TCP/IP四层模型**: - **应用层**:为应用程序提供网络服务。 - **传输层**:负责端到端的...

    网络协议分析实验报告

    网络层则使用IPV4协议和ICMP协议,IPV4协议中包含诸如版本、首部长度、总长度、标识、标志、片偏移、生存时间、协议等关键字段,每个字段都有其特定作用,如标识用于区分数据分片,生存时间限制了数据包在网络中的...

    URL 长度有限制吗?

    标题中的问题直指URL长度是否有限制,这是一个关于HTTP协议和网络请求常见限制的问题。描述中提到了GET和POST两种HTTP方法的区别,特别是在处理参数数量上的考量。标签明确指出是"URL长度限制",这部分内容则通过...

    Http协议中POST和GET方法的本质区别

    HTTP中的POST和GET方法是两种最常用于网页开发的数据传输方式,它们在原理和表现形式上存在本质区别。 首先,从原理上看,GET方法通常用于获取资源信息,它通过URL来传递参数,URL全称为资源描述符,表示网络上的一...

    http协议get与post的区别

    由于URL长度限制(一般不超过2048字符),GET方法能传输的数据量相对较小,通常不超过2KB。此外,GET请求的所有参数都会显示在URL中,这可能暴露敏感信息,因此GET请求通常不安全,不适合用于包含敏感信息的请求,如...

    协议大全 包含各种协议

    【标题】: "协议大全——理解网络协议...总结来说,理解网络协议,特别是IP分片和UDP协议的工作原理,对于网络通信的深入学习至关重要。这些基础知识不仅适用于网络工程师,也是开发网络应用、设计通信系统的必备知识。

    路由协议 高度总结 全面的路由协议讲解

    路由协议是网络通信的核心组成部分...总结,路由协议是网络架构中的关键元素,理解其原理和应用有助于优化网络性能、提高网络可靠性。本资料《路由协议高度总结.ppt》将详细解析这些知识点,为读者提供全面的学习资源。

    Um接口协议---LapDm协议

    协议在无线路径上没有固定报文长度限制,仅受其他接口上必须传输的数据长度限制。在确认模式下,需要通过一个简单程序来启动上层信息交换,链路的正常释放也通过一个简单过程完成。 4. LapDm协议中的SAPI和多帧操作...

    电信SMGP协议总结

    本文将基于已有的学习经验,对电信SMGP协议的实现过程进行总结,特别关注在实际开发过程中遇到的关键问题及其解决方案。 #### 二、关键知识点解析 ##### 2.1 Connect 命令 **定义与作用:** - `Connect` 命令用于...

    Android中http协议上传文件

    ### Android中HTTP协议上传文件知识点解析 #### 一、HTTP协议简介 HTTP(HyperText Transfer Protocol)即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是基于TCP/IP通信协议来...

    WebSocket协议手册(rfc6455中文翻译).pdf

    WebSocket协议手册(rfc6455中文翻译)详细介绍了WebSocket通信协议的相关知识点,以下是手册中涵盖的知识点详解: 1. WebSocket协议概述: WebSocket是一种在单个TCP连接上进行全双工通信的协议,可以实现实时的双向...

    CISCO协议总结大全

    ### CISCO协议总结大全 #### 一、CGMP:思科组管理协议 **定义**: - CGMP(Cisco Group Management Protocol)是思科专有的协议,主要用于在局域网中管理和转发组播数据流。 **特点**: - **动态转发**:允许IP...

    SOME/IP协议介绍及开发协议栈的一些经验总结

    通过对SOME/IP协议栈的理解和掌握,可以更好地应对车载网络中的各种挑战。在实际开发过程中,需要注意以下几个方面: - **深入理解SOME/IP协议栈的工作原理**:这有助于在出现问题时快速定位问题。 - **熟悉SOME/IP-...

    HTTP协议Keep-Alive模式详解

    Keep-Alive 模式是 HTTP 协议中的一种机制,它使客户端到服务器端的连接保持有效,从而避免了每个请求和应答都新建一个连接,并立即断开连接。下面是关于 Keep-Alive 模式的详细解释: 一、什么是 Keep-Alive 模式...

    网络工程师软考资料-CISCO协议总结大全.doc

    【网络工程师软考资料-CISCO协议总结大全】 在Cisco网络技术中,协议的掌握是至关重要的,本资料主要涵盖了网络、路由、数据链路和网络安全技术四大方面的Cisco协议。以下是这些协议的详细介绍: 1. 思科网络路由...

    Tcp/Ip协议个人总结

    IP数据包由头部和数据两部分组成,标准的IP头部是20字节,包含版本、服务类型、总长度、标识符、标志、片段偏移、生存时间(TTL)、协议、头部校验和、源IP地址和目标IP地址等信息。TTL字段限制了数据包在网络中的...

Global site tag (gtag.js) - Google Analytics