我想把http://www.baidu.com/hi/down/abcde.rar加密成http://alsdkasdflasdkfsdksadda,
于是我用DES加密,但是加密以后浏览器老是报Bad Request (Invalid URL)错误,现在有两个问题,只有解决一个就可以了
1,URL有长度限制么?如果有那么超长的URL怎么处理?
2,有这么一个字符串函数么?加密以后其长度不变
于是我用DES加密,但是加密以后浏览器老是报Bad Request (Invalid URL)错误,现在有两个问题,只有解决一个就可以了
1,URL有长度限制么?如果有那么超长的URL怎么处理?
2,有这么一个字符串函数么?加密以后其长度不变
重写url是网页程序的问题,但现在是你把url改了,浏览器可不具备重新功能,他就请求出错了,你要做的不是加密url,而是加密url中的参数Bad Request (Invalid URL)
去网上搜索一下这话的意思吧
微软帮助网站上说IE7之前(包括IE7)的浏览器,对URL的最大长度限制是2,083个字符。Firefox:
对于Firefox 1.5.x,地址栏能显示的URL最大长度是65,536个字符,但实际上有效的URL最大长度不少于100,000个字符。
对于Firefox 3.0.5,mozilla官方论坛上有人测试其URL长度限制为65,000个字符。
也有人说Firefox可以支持URL高达2Gbyte的长度(参考),在data URL中可以运用到这样大数据量的URL。data URL是一种URL本身包含了实际数据的URL,比如一个图片、一个HTML网页或者全部的数据、代码等等。仅有Firefox支持data URL。
data URL示例:
<html>
<body>
<a href="data:text/html;charset=utf-8,%3C!DOCTYPE%20HTML%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20HTML%204.0%2F%2FEN%22%3E%0D%0A%3Chtml%20lang%3D%22en%22%3E%0D%0A%20%3Chead%3E%0D%0A%20%20%3Ctitle%3ETest%3C%2Ftitle%3E%0D%0A%20%20%3Cstyle%20type%3D%22text%2Fcss%22%3E%0D%0A%20%20%3C%2Fstyle%3E%0D%0A%20%3C%2Fhead%3E%0D%0A%20%3Cbody%3E%0D%0A%20%20%3Cp%3EThis%20is%20a%20data%20URL%3C%2Fp%3E%0D%0A%20%3C%2Fbody%3E%0D%0A%3C%2Fhtml%3E%0D%0A">This is a test</a>
</body>
</html Safari:
Safari最少支持80,000个字符长度的URL。 Opera:
Opera官方网站上说,Opera并没有强制限制URL的长度。
网友测试Opera 9支持最少190,000个字都长度的URL,并且Opera 9的地址栏可以显示、编辑、复制和粘贴完整的URL串。 本文参考:
【1】http://www.boutell.com/newfaq/misc/urllength.html
【2】http://support.mozilla.com/tiki-view_forum_thread.php?comments_parentId=153230&forumId=1
【3】http://forums.mozillazine.org/viewtopic.php?f=7&t=322458&start=0&st=0&sk=t&sd=a
【4】http://support.microsoft.com/kb/q208427/
【5】http://www.opera.com/support/kb/view/387/
http://www.xxx.com/down/aaaaaaaaaaaaaaaaaaaaaaaaaaaa.rar
自动变为
http://www.xxx.com/down.asp?cs=aaaaaaaaaaaaaaaaaaaaaaaaaaaa当aaaaaaaaaaaaaaaaaaaaaaaaaa的参数长度比较小的时候没有问题,但是一但很长了,就出现上面说的那个问题Bad Request (Invalid URL)
我的处理方式:
在重写的时候,用到两个参数,在接收的时候再合并到一起,这样就避免文件名过程的现象了,
这个问题从昨天搞到现在才搞定,呵呵
http://www.xxx.com/down/p1=aaaaaaaaaaaaaa&p2=aaaaaaaaaaaaaa.rar