精华内容
下载资源
问答
  • Http get方式url参数长度以及大小

    千次阅读 2015-12-14 11:18:54
    众所周知, 传递小量参数(在没有其他原因,例如隐藏参数值的情况下)推荐使用GET方法,传递...原因是传说中GET方法是通过URL来传递,而URL的长度是受限的,而POST方法采用流的方式,理论上可以传递的容量是没有限制的。
    众所周知, 传递小量参数(在没有其他原因,例如隐藏参数值的情况下)推荐使用GET方法,传递大量参数推荐使用POST方法。原因是什么呢?
    原因是传说中GET方法是通过URL来传递,而URL的长度是受限的,而POST方法采用流的方式,理论上可以传递的容量是没有限制的。
    现在来看这个描述:“URL的长度是受限的”,具体是在哪里受限制呢?browser端还是server端呢?网上现在google出来的结果都是说url的长度实际上是受到browser的限制,如IE限定url长度为2083字节,opera 是4050, Netscape 是8192,等等。据说HTTP协议本身对GET方法的长度没有限制。那么,如果不使用浏览器,而是从程序里发送HttpRequest的话,GET发送的长度就可以是无限的么?抱着这样的想法,进行了如下实验: 

    在client端,用Java实现,向server端发送HttpRequest,使用GET方法。 

    在server端,设计一个apache module,并将strlen(r->args),用ap_rprintf输出,作为response,返回到Java端。 

    通过不断增加GET方法传过去的字符串的长度,发现URL长度超过8208字节时,Java抛出IO Exception: Server returned HTTP response code: 414 for URL: ..... 

    414 代表哪种错误呢? 

    414 - Request-URL Too Long (SEE: http://www.websitepulse.com/kb/4xx_HTTP_status_codes.html) 

    由此可见,Server端对于URL的长度是有限制的,那么对于GET方法可以传输的数据也是有限制的。
    展开全文
  • url最大长度

    千次阅读 2019-01-22 11:34:02
    HTTP RFC2616协议没有规定URL的最大长度,但规定服务器如果不处理太URL,就得返回414状态码(Request-URI Too Long)。 HTTP RFC2616协议指出,某些旧的客户端或代理,可能无法处理超过255个字节的URI。 ...

    最近在库中存储一些url,针对字段长度,这里简单说下url最大的长度,具体情况根据业务场景而定。

    1. HTTP RFC2616协议没有规定URL的最大长度,但规定服务器如果不能处理太长的URL,就得返回414状态码(Request-URI
      Too Long)。

    2. HTTP RFC2616协议指出,某些旧的客户端或代理,可能无法处理超过255个字节的URI。

    3. 既然HTTP协议没有规定URL的最大长度,那么URL的最大长度与用户的浏览器有关,同时和服务器能够处理的最大长度URL有关。

    4. 站点地图协议(sitemap protocol),限制URL的长度是2048,如果你想让搜索引擎能够搜索到你,2048是最大极限了。

    5. Google最大能抓取和索引2047个字节的URL,但是,用户点击的时候会返回414,经过测试,Google的SERP连接,最大不能超过1855个字符,超过这个数,用户点击则返回414。

    6. IE8的URL的最大URL长度是2083个字节,其中路径部分(Path)最大长度是2048个字节。IE9也有类似限制,IE10也只接受2083个字节。虽然点击URL长度比这个长的连接依然可以工作,但地址栏只显示前2083个字节。


    作者:清箫
    来源:CSDN
    原文:https://blog.csdn.net/woxueliuyun/article/details/41866611
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • URL长度

    千次阅读 2018-03-15 19:44:26
    1.各个浏览器对URL的长度有限制。2. IIS 7 对 Query String 有长度限制;默认:2048;1024字节=1kb;各个浏览器对URL的长度现在如下:1. IE浏览器对URL的长度现限制为2048字节(自己测试最多为2047字节)。2. 360极速...

    1.各个浏览器对URL的长度有限制。
    2. IIS 7 对 Query String 有长度限制;默认:2048;

    1024字节=1kb;

    各个浏览器对URL的长度现在如下:
    1. IE浏览器对URL的长度现限制为2048字节(自己测试最多为2047字节)。
    2. 360极速浏览器对URL的长度限制为2118字节。
    3. Firefox(Browser)对URL的长度限制为65536字节。
    4. Safari(Browser)对URL的长度限制为80000字节。
    5. Opera(Browser)对URL的长度限制为190000字节。
    6. Google(chrome)对URL的长度限制为8182字节。

    另外:GBK编码,一个汉字占两个字节。

    UTF-16编码,通常汉字占两个字节,

    UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。


    展开全文
  • 如何将一个长URL转换为一个短URL

    万次阅读 多人点赞 2018-04-21 14:40:41
    前几天整理面试题的时候,有一道试题是《如何将一个很URL转换为一个短的URL,并实现他们之间的相互转换?》,现在想起来这是一个绝对不简单的问题,需要考虑很方面,今天和大家一起学习研究一下! 短网址:...

    一、前言

    前几天整理面试题的时候,有一道试题是《如何将一个很长的URL转换为一个短的URL,并实现他们之间的相互转换?》,现在想起来这是一个绝对不简单的问题,需要考虑很多方面,今天和大家一起学习研究一下!

    短网址:顾名思义,就是将长网址缩短到一个很短的网址,用户访问这个短网址可以重定向到原本的长网址(也就是还原的过程)。这样可以达到易于记忆、转换的目的,常用于有字数限制的微博、二维码等等场景。

    关于短URL的使用场景,举个简单的例子来说明一下,看一下业务中使用短URL的重要性!

    二、短地址使用场景

    1、新浪微博

    我们在新浪微博上发布网址的时候,微博会自动判别网址,并将其转换,例如:https://t.cn/RuPKzRW。为什么要这样做的?

    这是因为微博限制字数为140字一条,那么如果我们需要发一些链接上去,但是这个链接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是不能被允许的或者说用户体验很差的,所以短网址应运而生了,短网址这种服务可以说是在微博出现之后才流行开来的!往下看:

    (1)首先,我先发一条微博带有一个URL地址:
    这里写图片描述
    (2)然后,看他转换之后显示的效果是什么样子的哪?
    这里写图片描述
    (3)查看对应页面元素的HTML源码如下:
    这里写图片描述
    (4)可以看出:https://blog.csdn.net/xlgen157387/article/details/79863301 被转换为:http://t.cn/RuPKzRW,此时你访问http://t.cn/RuPKzRW是可以定位到https://blog.csdn.net/xlgen157387/article/details/79863301,也就是实现了转换。

    2、短网址二维码

    网址在转换成短网址时,也可以生成相应的短网址二维码,短网址二维码的应用,二维码核心解决的是跨平台、跨现实的数据传输问题;而且二维码跟应用场景结合之后,所能解决的问题会越来越多。

    (1)短网址二维码相比短链接更方便,能少输入,尽量少输入,哪怕只是少点一下键盘,都是有意义的。

    (2)二维码只是扫描一个简单的链接,打开的却是一个世界。想象一下,用手机购买售货机里商品,二维码扫描是略快于从用手机找到该售货机并找到该商品的,而且这种操作相对于搜索/查找而言不是更优雅吗?

    (3)所有商超里面的商品,都是使用条码来确定商品的唯一性的,去买单的时候都是扫描条码。试想,如果里面加入了更多产品的生产日期、厂家、流转途径、原材料等等信息,是不是厉害了呢?特别是针对食品信息的可追溯上,二维码应用场景更广泛。

    三、短地址的好处

    除了上述场景中,我们将长地址转换为短地址的使用场景的优点(压缩URL长度)之外,短地址还具有很多实际场景中的优点,例如:

    (1)节省网址长度,便于社交化传播,一个是让URL更短小,传播更方便,尤其是URL中有中文和特殊字符,短网址解决很长的URL难以记忆不利于传播的问题;

    (2)短网址在我们项目里可以很好的对开放以及对URL进行管理。有一部分网址可以会涵盖性、暴力、广告等信息,这样我们可以通过用户的举报,完全管理这个连接将不出现在我们的应用中,对同样的URL通过加密算法之后,得到的地址是一样的;

    (3)方便后台跟踪点击量、地域分布等用户统计。我们可以对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点,这样有利于我们对项目的后续工作更好的作出决策;

    (4)规避关键词、域名屏蔽手段、隐藏真实地址,适合做付费推广链接;

    (5)当你看到一个淘宝的宝贝连接后面是200个“e7x8bv7c8bisdj”这样的字符的时候,你还会觉得舒服吗。更何况微博字数只有140字,微博或短信里,字数不够,你用条短网址就能帮你腾出很多空间来;

    四、短网址服务提供平台

    目前,国内网又很多提供短地址服务的平台,例如:

    等等还有很多,这个可以搜索一下就会有很多!但是一个注意的是,如果使用某一个平台的短地址服务,一定要保证长期可靠的服务,不然一段时间失效了,我们以前已经转换的URL就完了!

    这里以百度例,将我们上述博客的地址转换为短地址如下所示:

    这里写图片描述

    当然,对于我们的业务来说,如果自己可以提供自己的短URL服务那才是更好的,不需要受制于人!(中国芯片需要崛起!!!)

    五、关于如何生成短地址URL的讨论

    关于短地址URL如何生成方式的,网上有很多方式,有基于映射的,有基于Hash的,有基于签名的,但是总的来说并不能满足绝大部分场景的使用,或者说是一种错误的设计方式。这里不再重复造轮子!以下是知乎用户iammutex关于该问题的探讨,截图过来和大家一起学习一下:

    这里写图片描述

    作者:iammutex
    链接:https://www.zhihu.com/question/29270034/answer/46446911
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    

    六、生成短地址URL需要注意的

    看到上述知乎用户iammutex关于如何正确生成短地址URL的探讨,我们知道了,可以通过发号器的方式正确的生成短地址,生成算法设计要点如下:

    (1)利用放号器,初始值为0,对于每一个短链接生成请求,都递增放号器的值,再将此值转换为62进制(a-zA-Z0-9),比如第一次请求时放号器的值为0,对应62进制为a,第二次请求时放号器的值为1,对应62进制为b,第10001次请求时放号器的值为10000,对应62进制为sBc。

    (2)将短链接服务器域名与放号器的62进制值进行字符串连接,即为短链接的URL,比如:t.cn/sBc。

    (3)重定向过程:生成短链接之后,需要存储短链接到长链接的映射关系,即sBc -> URL,浏览器访问短链接服务器时,根据URL Path取到原始的链接,然后进行302重定向。映射关系可使用K-V存储,比如Redis或Memcache。

    七、生成短地址之后如何跳转哪?

    对于该部分的讨论,我们可以认为他是整个交互的流程,具体的流程细节如下:

    (1)用户访问短链接:http://t.cn/RuPKzRW;

    (2)短链接服务器t.cn收到请求,根据URL路径RuPKzRW获取到原始的长链接(KV缓存数据库中去查找):https://blog.csdn.net/xlgen157387/article/details/79863301;

    (3)服务器返回302状态码,将响应头中的Location设置为:https://blog.csdn.net/xlgen157387/article/details/79863301;

    (4)浏览器重新向https://blog.csdn.net/xlgen157387/article/details/79863301发送请求;

    (5)返回响应;

    八、短地址发号器优化方案

    1、算法优化

    采用以上算法,如果不加判断,那么即使对于同一个原始URL,每次生成的短链接也是不同的,这样就会浪费存储空间(因为需要存储多个短链接到同一个URL的映射),如果能将相同的URL映射成同一个短链接,这样就可以节省存储空间了。主要的思路有如下两个:

    方案1:查表

    每次生成短链接时,先在映射表中查找是否已有原始URL的映射关系,如果有,则直接返回结果。很明显,这种方式效率很低。

    方案2:使用LRU本地缓存,空间换时间

    使用固定大小的LRU缓存,存储最近N次的映射结果,这样,如果某一个链接生成的非常频繁,则可以在LRU缓存中找到结果直接返回,这是存储空间和性能方面的折中。

    2、可伸缩和高可用

    如果将短链接生成服务单机部署,缺点一是性能不足,不足以承受海量的并发访问,二是成为系统单点,如果这台机器宕机则整套服务不可 用,为了解决这个问题,可以将系统集群化,进行“分片”。

    在以上描述的系统架构中,如果发号器用Redis实现,则Redis是系统的瓶颈与单点,因此,利用数据库分片的设计思想,可部署多个发号器实例,每个实例负责特定号段的发号,比如部署10台Redis,每台分别负责号段尾号为0-9的发号,注意此时发号器的步长则应该设置为10(实例个数)。

    另外,也可将长链接与短链接映射关系的存储进行分片,由于没有一个中心化的存储位置,因此需要开发额外的服务,用于查找短链接对应的原始链接的存储节点,这样才能去正确的节点上找到映射关系。

    九、如何用代码实现短地址

    1、使用随机序列生成短地址

    说到这里终于说到重点了,很多小伙伴已经按捺不住了,不好意思让大家失望了,这只是一片简单的文章,并不能把这么繁杂的一个系统演示清楚!秉着不要重复造轮子的原则,这里给出一个为数不多还算可以的实现短地址的开源项目:urlshorter

    注意:urlshorter本身还是基于随机的方式生成短地址的,并不算是一个短地址发号器,因此会有性能问题和冲突的出现,和知乎用户iammutex 描述的实现方式还是有区别的!而关于短地址发号器的方式目前还没有找到更好的开源项目可供参考!

    项目地址:https://gitee.com/tinyframework/urlshorter

    这里写图片描述

    2、使用SnowFlake发号器生成短地址

    实现参考:
    https://github.com/beyondfengyu/SnowFlake
    http://www.wolfbe.com/detail/201611/381.html

    Twitter的雪花算法SnowFlake,使用Java语言实现。

    SnowFlake算法用来生成64位的ID,刚好可以用long整型存储,能够用于分布式系统中生产唯一的ID, 并且生成的ID有大致的顺序。 在这次实现中,生成的64位ID可以分成5个部分:

    0 - 41位时间戳 - 5位数据中心标识 - 5位机器标识 - 12位序列号
    

    5位数据中心标识、5位机器标识这样的分配仅仅是当前实现中分配的,如果业务有其实的需要,可以按其它的分配比例分配,如10位机器标识,不需要数据中心标识。

    Java代码实现如下:

    /**
     * 进制转换工具,最大支持十进制和62进制的转换
     * 1、将十进制的数字转换为指定进制的字符串;
     * 2、将其它进制的数字(字符串形式)转换为十进制的数字
     * @author xuliugen
     * @date 2018/04/23
     */
    public class NumericConvertUtils {
    
        /**
         * 在进制表示中的字符集合,0-Z分别用于表示最大为62进制的符号表示
         */
        private static final char[] digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
                'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
                'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
    
        /**
         * 将十进制的数字转换为指定进制的字符串
         * @param number 十进制的数字
         * @param seed   指定的进制
         * @return 指定进制的字符串
         */
        public static String toOtherNumberSystem(long number, int seed) {
            if (number < 0) {
                number = ((long) 2 * 0x7fffffff) + number + 2;
            }
            char[] buf = new char[32];
            int charPos = 32;
            while ((number / seed) > 0) {
                buf[--charPos] = digits[(int) (number % seed)];
                number /= seed;
            }
            buf[--charPos] = digits[(int) (number % seed)];
            return new String(buf, charPos, (32 - charPos));
        }
    
        /**
         * 将其它进制的数字(字符串形式)转换为十进制的数字
         * @param number 其它进制的数字(字符串形式)
         * @param seed   指定的进制,也就是参数str的原始进制
         * @return 十进制的数字
         */
        public static long toDecimalNumber(String number, int seed) {
            char[] charBuf = number.toCharArray();
            if (seed == 10) {
                return Long.parseLong(number);
            }
    
            long result = 0, base = 1;
    
            for (int i = charBuf.length - 1; i >= 0; i--) {
                int index = 0;
                for (int j = 0, length = digits.length; j < length; j++) {
    	            //找到对应字符的下标,对应的下标才是具体的数值
                    if (digits[j] == charBuf[i]) {
                        index = j;
                    }
                }
                result += index * base;
                base *= seed;
            }
            return result;
        }
    }  
    
    /**
     * Twitter的SnowFlake算法,使用SnowFlake算法生成一个整数,然后转化为62进制变成一个短地址URL
     * @author beyond
     * @author xuliugen
     * @date 2018/04/23
     */
    public class SnowFlakeShortUrl {
    
        /**
         * 起始的时间戳
         */
        private final static long START_TIMESTAMP = 1480166465631L;
    
        /**
         * 每一部分占用的位数
         */
        private final static long SEQUENCE_BIT = 12;   //序列号占用的位数
        private final static long MACHINE_BIT = 5;     //机器标识占用的位数
        private final static long DATA_CENTER_BIT = 5; //数据中心占用的位数
    
        /**
         * 每一部分的最大值
         */
        private final static long MAX_SEQUENCE = -1L ^ (-1L << SEQUENCE_BIT);
        private final static long MAX_MACHINE_NUM = -1L ^ (-1L << MACHINE_BIT);
        private final static long MAX_DATA_CENTER_NUM = -1L ^ (-1L << DATA_CENTER_BIT);
    
        /**
         * 每一部分向左的位移
         */
        private final static long MACHINE_LEFT = SEQUENCE_BIT;
        private final static long DATA_CENTER_LEFT = SEQUENCE_BIT + MACHINE_BIT;
        private final static long TIMESTAMP_LEFT = DATA_CENTER_LEFT + DATA_CENTER_BIT;
    
        private long dataCenterId;  //数据中心
        private long machineId;     //机器标识
        private long sequence = 0L; //序列号
        private long lastTimeStamp = -1L;  //上一次时间戳
    
        /**
         * 根据指定的数据中心ID和机器标志ID生成指定的序列号
         * @param dataCenterId 数据中心ID
         * @param machineId    机器标志ID
         */
        public SnowFlake(long dataCenterId, long machineId) {
            if (dataCenterId > MAX_DATA_CENTER_NUM || dataCenterId < 0) {
                throw new IllegalArgumentException("DtaCenterId can't be greater than MAX_DATA_CENTER_NUM or less than 0!");
            }
            if (machineId > MAX_MACHINE_NUM || machineId < 0) {
                throw new IllegalArgumentException("MachineId can't be greater than MAX_MACHINE_NUM or less than 0!");
            }
            this.dataCenterId = dataCenterId;
            this.machineId = machineId;
        }
    
        /**
         * 产生下一个ID
         * @return
         */
        public synchronized long nextId() {
            long currTimeStamp = getNewTimeStamp();
            if (currTimeStamp < lastTimeStamp) {
                throw new RuntimeException("Clock moved backwards.  Refusing to generate id");
            }
    
            if (currTimeStamp == lastTimeStamp) {
                //相同毫秒内,序列号自增
                sequence = (sequence + 1) & MAX_SEQUENCE;
                //同一毫秒的序列数已经达到最大
                if (sequence == 0L) {
                    currTimeStamp = getNextMill();
                }
            } else {
                //不同毫秒内,序列号置为0
                sequence = 0L;
            }
    
            lastTimeStamp = currTimeStamp;
    
            return (currTimeStamp - START_TIMESTAMP) << TIMESTAMP_LEFT //时间戳部分
                    | dataCenterId << DATA_CENTER_LEFT       //数据中心部分
                    | machineId << MACHINE_LEFT             //机器标识部分
                    | sequence;                             //序列号部分
        }
    
        private long getNextMill() {
            long mill = getNewTimeStamp();
            while (mill <= lastTimeStamp) {
                mill = getNewTimeStamp();
            }
            return mill;
        }
    
        private long getNewTimeStamp() {
            return System.currentTimeMillis();
        }
    
        public static void main(String[] args) {
            SnowFlake snowFlake = new SnowFlake(2, 3);
    
            for (int i = 0; i < (1 << 4); i++) {
                //10进制
                Long id = snowFlake.nextId();
                //62进制
                String convertedNumStr = NumericConvertUtils.toOtherNumberSystem(id, 62);
    
                //10进制转化为62进制
                System.out.println("10进制:" + id + "  62进制:" + convertedNumStr);
    
                //TODO 执行具体的存储操作,可以存放在Redis等中
    
                //62进制转化为10进制
                System.out.println("62进制:" + convertedNumStr + "  10进制:" + NumericConvertUtils.toDecimalNumber(convertedNumStr, 62));
                System.out.println();
            }
        }
    }
    //生成结果:
    10进制:185784275776581632  62进制:dITqmhW2He
    62进制:dITqmhW2He  10进制:185784275776581632
    
    10进制:185784284689477632  62进制:dITqw17E6k
    62进制:dITqw17E6k  10进制:185784284689477632
    
    10进制:185784284689477633  62进制:dITqw17E6l
    62进制:dITqw17E6l  10进制:185784284689477633
    
    10进制:185784284689477634  62进制:dITqw17E6m
    62进制:dITqw17E6m  10进制:185784284689477634
    
    10进制:185784284689477635  62进制:dITqw17E6n
    62进制:dITqw17E6n  10进制:185784284689477635
    
    10进制:185784284689477636  62进制:dITqw17E6o
    62进制:dITqw17E6o  10进制:185784284689477636
    
    10进制:185784284689477637  62进制:dITqw17E6p
    62进制:dITqw17E6p  10进制:185784284689477637
    
    10进制:185784284693671936  62进制:dITqw1pfeo
    62进制:dITqw1pfeo  10进制:185784284693671936
    
    10进制:185784284693671937  62进制:dITqw1pfep
    62进制:dITqw1pfep  10进制:185784284693671937
    
    10进制:185784284693671938  62进制:dITqw1pfeq
    62进制:dITqw1pfeq  10进制:185784284693671938
    
    10进制:185784284693671939  62进制:dITqw1pfer
    62进制:dITqw1pfer  10进制:185784284693671939
    
    10进制:185784284693671940  62进制:dITqw1pfes
    62进制:dITqw1pfes  10进制:185784284693671940
    
    10进制:185784284693671941  62进制:dITqw1pfet
    62进制:dITqw1pfet  10进制:185784284693671941
    
    10进制:185784284693671942  62进制:dITqw1pfeu
    62进制:dITqw1pfeu  10进制:185784284693671942
    
    10进制:185784284693671943  62进制:dITqw1pfev
    62进制:dITqw1pfev  10进制:185784284693671943
    
    10进制:185784284693671944  62进制:dITqw1pfew
    62进制:dITqw1pfew  10进制:185784284693671944
    

    最后的代码地址:https://gitee.com/xuliugen/codes/9upvmzyk6c2i78eb3lgnj63

    3、推荐一个通用ID发号器

    码云地址:https://gitee.com/robertleepeak/vesta-id-generator

    这里直接给大家地址,不在介绍,有想了解的可以移步查看文档。

    十、总结

    到此为止,我们一起学习了什么是短地址,短地址的优点,如何选择一种正确的方式来实现我们的短地址,以及在码云上找到的一个还算可以的短地址生成项目,相信此时的你能够有一个更好的了解!


    参考文章:

    1、https://www.2cto.com/kf/201601/486883.html
    2、https://blog.csdn.net/lz0426001/article/details/52370177
    3、http://blog.sina.com.cn/s/blog_16aace20e0102x4tt.html
    4、https://www.zhihu.com/question/29270034/answer/46446911
    5、https://github.com/beyondfengyu/SnowFlake

    在这里插入图片描述

    【视频福利】2T免费学习视频,搜索或扫描上述二维码关注微信公众号:Java后端技术(ID: JavaITWork)回复:1024,即可免费获取!内含SSM、Spring全家桶、微服务、MySQL、MyCat、集群、分布式、中间件、Linux、网络、多线程,Jenkins、Nexus、Docker、ELK等等免费学习视频,持续更新!

    展开全文
  • 各个浏览器支持的URL长度

    千次阅读 2018-06-29 15:59:02
    最近看到一个工程,所有参数都拼接到访问路径上,而且都是转码后的字符,参数非常内容又非常,从而导致了在某些浏览器上访问时报500,原因是url的长度超出了浏览器的限制,以下是各个浏览器的url长度限制Safari ...
  • GET请求中URL的最大长度限制总结

    千次阅读 2018-10-12 09:44:26
    由于jsonp跨域请求只能通过get请求,url长度根据浏览器及服务器的不同而有不同限制。...今天在写一个php相应jsonp请求的功能时,发现当url中包含的请求参数过时会返回414错误。 如下图 &lt;html&...
  • JQuery url长度太,导致报错

    千次阅读 2016-12-13 16:36:20
    如题: JQuery url长度太,导致报错,相信很多人都遇到过,无论是采用get或者post的方式,都会由于url的限制、浏览器对于url的限制、服务器对于url的限制,势必会出错,所以询问同事有如下解决方案:  1.在前段...
  • 二维码url的长度

    千次阅读 2017-06-08 10:19:02
    网上的二维码例子都比较好,不过就是没有比较详细讲解关于QRCode二维码生成的规则和要点。例如:为什么要在生成二维码的时候,判断字符集的长度要小于128。...经过次测试发现,二维码所包含的字符信息量是由Qr
  • url超过长度限制的问题

    千次阅读 2017-01-14 22:45:33
    笔者最近就出现了一种情况,就是想将百度地图一串表示园的经纬度传到后台,但是这串经纬度非常url会自动截取部分的长度,并没有将所有的经纬度信息传值到后台,笔者就这种特殊情况,提供一种处理方式:使用ajax...
  • 今天在写一个 PHP 相应 JSOUP 请求的功能时,发现当 URL 中包含的请求参数过时会返回 414 错误。 浏览器 1、IE IE浏览器(Microsoft Internet Explorer) 对URL长度限制是2083(2K+53),超过这个限制,则...
  • URL路径长度问题

    千次阅读 2016-08-17 17:41:44
    在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,接受的最大长度往往是不一样的,当然,不一样的Web服务器能够处理的最大长度的URL的能力也是不一样...
  • http协议中,url最大长度是多少?

    千次阅读 2018-07-19 16:05:05
    http协议中,url最大长度2083个字符,超过最大长度后无法提交。 1、http协议为超文本传输协议,是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。 2、设计HTTP最初的目的是为了提供一种...
  • post,get请求url长度

    千次阅读 2017-03-29 17:00:52
    问题一:CSV处理时,如果处理的主题数过多,发生URL参数上限的错误。 原因:可变长度的参数通过URL方式传递,会造成这种潜在的错误发生。 分析:1、属于2次发生问题,开发方面没有及时通过checklist等方式向组员...
  • HTTP Get请求URL最大长度

    千次阅读 2017-04-26 11:20:02
    各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过最大长度后提交情况...IE7.0 :url最大长度2083个字符,超过最大长度后仍然提交,但是只能传过去2083个字符。 firefox 3.0.3 :url最大长度77
  • 前端URL拼接个参数的办法

    万次阅读 2019-08-30 16:05:41
    哎,这种东西很基础,做个记录。 比如:URL="www.baidu.com" 我要在后面拼接上东西的话应该在这...如果个参数的话:每个参数名前面加上& URL="www.baidu.com?" +“problem”=xxxx+"&data="+xxxx+"&am...
  • URL最大长度问题

    万次阅读 2012-11-12 16:13:54
    一个选择人员的选择控件,当选择个人时(50个的时候),返回没有错误现象,而再一次打开的时候就报404错误。 看到这个错误非常纳闷,无法下手,只能再一次看控件的代码,在详细看代码时,发现所有的参数都是经过...
  • 个人记录:2018年,工作的第6到7个年头。...题目:经常看到url中很的一串请求参数,为什么不采用post方式?出处:http://ifeve.com/question/%e7%bb%8f%e5%b8%b8%e7%9c%8b%e5%88%b0url%e4%b8%ad%...
  • url传参过多,导致url问题处理

    千次阅读 2016-08-04 12:17:00
    ie支持的长度最长支持2083,其他浏览器支持更。当长度超过了请求就会无效。  解决办法:url长度有限制,那么我们只能改用其他方式发请求了,使用最原始的表单提交方式进行。注意:使用表弟提交方式时:注意要...
  • 链接 转短链接URL的设计思路

    万次阅读 2017-09-22 20:13:06
    在网上看到有人对 链接URL 转 短链接URL的思路和看法,感觉挺好
  • 对身份证正反面图片进行BASE64编码,然后对整个参数进行加密,处理参数之后整个URL后面的参数有38万个字节,371K.然后用下面的POST方法进行请求服务器,请问大神,这个请求能否成功? 下面那段代码就是post请求...
  • Chrome浏览器URL长度限制

    千次阅读 2015-11-20 14:59:53
    测试版本:46.0.2490.80 最大长度:8198个字符(英文)
  • 各种浏览器url最大长度限制

    万次阅读 2014-09-22 10:00:30
    虽然HTTP协议的RFC规范并没有详细规定URL的最大字符长度限制,但实际上,在浏览器或者服务器中总会存在限制的。本文中说所的字符是指ASCII字符。...对于Firefox1.5.x,地址栏显示的URL最大长度是65,536个字
  • 因不创建视频对象,所以创建音频对象,将url放入其中,测试发现,可以算出时间,但是视频过大时,次切换点击时,发现所有展示的图片消失不见,包括静态图片(放弃此方法) 求解!不使用video标签,视频都是MP4格式...
  • 长URL链接转短链接算法

    千次阅读 2019-04-27 17:29:37
    之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太的话,那么发送的字数将大大减少。短链接的主要职责就是把原始链接很的地址压缩成只有6 个字母的短链接地址,当我们点击这6 个字母的链接后...
  • 但这样传参有一个问题,当对象数据长度过大时会报错,因为url传参时程序把过的那段数据给截取掉了,导致数据转换回来时格式不对而报错。 这时可以再添加另一个API:encodeURIComponent(obj) 和 decodeURIComponent...
  • 解决http的get请求url的问题

    万次阅读 2016-12-02 14:03:07
    在实际项目中,get请求的url经常会过,导致数据丢失。 所以采用post请求,来解决该问题,写一个采用post请求的函数即可: function sendByPost(url, ids){  var oForm = document.createElement("form");  ...
  • 1.问题描述 java用apache httpclient请求...c=C把请求参数直接追加到url方式调用目标应用,当参数过多时候,发现服务起jetty日志报“413 HEAD FULL”错误 解决方法一: google搜索对应错误关键字查找解决办法,发现...
  • URL重定向漏洞

    千次阅读 2019-09-06 00:37:41
    URL重定向(URL redirection,或称网址重定向或网域名称转址),是指当使用者浏览某个网址时,将他导向到另一个网址的技术 url转发和重定向区别 第一种是request.getRequestDispatcher().forward(request,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 535,505
精华内容 214,202
热门标签
关键字:

url能多长