`
javaOpen
  • 浏览: 123632 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP的URL最长可以有多长

阅读更多


最近有朋友问我,在浏览器中输入的URL最长可以有多长呢?这个问题比较奇怪,因为我用了这么多年的计算机,还没有遇到URL不够长的情况。但是在企业应用中还真有不少这种情况,因为需要动态产生一些链接和一些相应的信息,为了把连接和相应的信息联系在一起,特别是在浏览器关闭Cookie功能的时候,在URL后面可能会带有长长的尾巴。

事实上,如果希望在提交HTTP请求的同时附带上长长的信息,应该使用HTTP POST方法,而不是HTTP GET(也就是通常将信息放在URL中)。但是,构建HTTP POST方法要比HTTP GET麻烦,灵活性也差,所以很多Web开发设计人员选择了这种带有长长尾巴的URL方式。

那么HTTP URL到底有限制吗,限制是多少呢?事实上一个URL的长度限制可能在客户端(浏览器)和服务器端都存在。浏览器端的限制会根据浏览器的不同而不同,在 Windows上,Opera对URL的限制是4K左右,IE是在2K左右。FireFox比较大,我做过测试它的限制应该>10K。如果超出了限制,浏览器就会截取部分,或者干脆拒绝发送这个超长的请求。

而在服务器端,每个处理进程和线程都会事先准备好读取请求数据的缓存,为了节约内存,这个缓存通常不会太大。如果服务器发现超过处理缓存的请求,应该会返回414的错误代号(Request-URI Too Long)。通常来说在服务器的配置中会有参数来调整这个缓存的大小。例如在Sun JES Application Server中可以调整HTTP服务的缓冲区长度来实现。如下图:





根据朋友的要求,测试了一个长度为10K的URL,在FireFox中,通过服务器端的设置(将HTTP服务的缓冲区长度调整到12K),能够正确返回结果。而在IE中没有任何返回结果。在服务器端运行snoop命令监控每一个网络包,发现超长的请求根本没有发到服务器端,在IE浏览器中就拒绝了。

  • 大小: 61.7 KB
分享到:
评论

相关推荐

    网址(URL)支持的最大长度是多少?最大支持多少个字符?

    主要介绍了网址(URL)支持的最大长度是多少?最大支持多少个字符?本文总结了IIS、apache服务器及浏览器软件Internet Explorer、Firefox、Opera、chrome等主流的浏览器软件支持情况,需要的朋友可以参考下

    解决长度报错的qrcode.js

    2. **分块处理**:如果输入文本确实过长,无法一次性编码,可以将文本分割成多个较小的部分,然后分别生成多个二维码,通过链接这些二维码来传输整个信息。 3. **自定义编码算法**:可能对原有的编码算法进行了优化...

    UrlShorter v0.0.1.rar

    它可以把长长的URL地址转化成很短的地址,基于php mysql开发,速度快,对服务器压力很小,支持apache和nginx,采用 wordpress一致的rewrite规则,具体规则己经打包在下载安装包里面。 安装很简单,上传所有文件到...

    JavaWeb Servlet中url-pattern的使用

    如果你在配置或使用`url-pattern`时遇到问题,可以查阅更多文档,或者在相关论坛上提问,与其他开发者交流讨论,共同解决问题。希望这篇文章能对你理解和使用JavaWeb Servlet的`url-pattern`有所帮助,感谢你的阅读...

    python+selenium打印当前页面的titl和url方法.pdf

    url = 'http://www.baidu.com' # 让浏览器打开指定URL driver.get(url) # 获取页面标题 title = driver.title # 获取页面URL current_url = driver.current_url # 打印页面标题和URL print("页面标题:", title) ...

    UrlShorter网址缩短系统 0.0.1.zip

    它可以把长长的URL地址转化成很短的地址,基于php mysql开发,速度快,对服务器压力很小,支持apache和nginx,采用 wordpress一致的rewrite规则,具体规则己经打包在下载安装包里面。 安装很简单,上传所有文件到...

    Go-mux一个golang语言的强大URL路由器为和调度程序

    6. **子路由器**:可以创建子路由器,它们有自己的独立路由规则,这在构建大型复杂应用时,能够帮助组织和管理代码结构。 7. **优先级处理**:如果存在多个路由匹配到同一个请求,Go-mux会按照注册顺序选择最具体的...

    cfworker-url-shortener:部署在 Cloudflare Workers 的短网址服务

    cfworker-url-shortener 部署在 Cloudflare Workers 的短网址服务 利用 Cloudflare 的 Workers 路由配置,可以将 / 路由到 GitHub Pages,/* 路由到 Cloudflare Workers,这样首页就不会占用 Workers 资源了 ...

    PyPI 官网下载 | sanic-routing-0.2.0.tar.gz

    - Sanic遵循“最长匹配”原则,如果有两个路由都匹配请求的URL,将选择最具体的那个。 - 如果URL和HTTP方法都匹配,但有多个处理函数,Sanic将抛出异常,提示路由冲突。 5. **中间件**: - Sanic允许添加全局...

    怎么向服务器提交用户名密码等数据

    第一种方法 使用标准的JAVA接口 ...转换成一串字符串 然后新建URL打开openConnection 得到 httpURLConnection 设置最长连接时间和setRequestMethod请求方法 用GET还是POST 提交数据...用GET还是POST 提交数据用POST [更多]

    ksoap设置超时

    在Android开发中,ksoap2是一个非常常用的库,...这不仅可以防止因长时间等待导致的应用卡死,还可以优化用户体验,让应用程序更加健壮。当然,超时时间应根据实际网络环境和服务器响应速度灵活调整,以达到最佳效果。

    使用Python爬虫库requests发送请求、传递URL参数、定制headers

    - **超时设置**:可以通过`timeout`参数设置请求等待响应的最长时间,如`requests.get(url, timeout=5)`。 - **设置cookies**:使用`cookies`参数传递cookies,如`requests.get(url, cookies={'cookie_name': '...

    搜索推广基础知识第三站创意PPT课件.pptx

    默认关键词应选择单元内最长的词,以防止创意过长被系统截断。 2. 避免创意内容因通配符替换导致的超长现象,尤其是在右侧推广位等有限的展示空间中,以免影响整体的展现效果。 创意的展现形式受到不同推广位的字符...

    urlParser:用 C++ 编写的 Node.js 的 URL 解析器

    Node.js 的 #Url 解析器 -开发停止 ##性能分析C++ 的性能非常慢。 问题是在 v8 层设置对象时需要最长时间。 ##编译和运行 进行配置 建造 做测试 ###参考: /节点 RFC , 执照 麻省理工学院 :copyright:

    mms彩信的基本原理

    2. **视讯片**:彩信由多个视讯片组成,每个视讯片可以包含图片、文本、声音等内容。 - **播放长度**:可以自定义每个视讯片的播放时间。 - **内容**:支持导入文本。 - **图片**:支持GIF和JPEG格式。 - **声音...

    java-servlet-api.doc

    一个Servlet只能运行在一个Servlet环境中,但是不同的Servlet可以在Servlet引擎上有不同的视图。 如果Servlet引擎支持虚拟主机,每个虚拟主机有一个Servlet环境。一个Servlet环境不能在虚拟主机之间共享。 Servlet...

    一种基于并行Bloom Filter的高速URL查找算法

    该技术主要应用于URL过滤系统、Web缓存等网络系统中,目的是为了在包含大量URL的集合中快速定位URL或者URL的最长前缀。由于互联网的迅速发展,数据量急剧增加,对URL查找速度的要求也随之提高。同时,随着数据量的...

    jsp新闻发布

    - **NewsContent**:新闻内容,变长字符串,最长1500个字符。 - **NewsTime**:新闻发布时间,日期时间类型,不允许为空。 #### 四、系统关键技术 **关键技术**: - **前台读取数据库数据**:通过JavaBean技术将...

    SCWCD学习笔记(Head First Servlets & JSP)

    在Servlet映射路径匹配中,优先级顺序为:完全匹配的URL、最长匹配的URL、匹配的扩展名。实现SingleThreadModel接口的Servlet,每个请求都会创建一个新的Servlet实例。会话属性可以在同一ServletContext内的servlet...

    nginx组件.md

    - **正则表达式类型 (~)**:次高的优先级,多个正则匹配时,长度最长的优先。 - **常规字符串匹配类型**:最低优先级,按照前缀匹配。 - 示例: ```shell location = /api/specific { # 处理特定请求 } ...

Global site tag (gtag.js) - Google Analytics