美文网首页
get post的区别再次理解。

get post的区别再次理解。

作者: 开心的唱歌 | 来源:发表于2020-11-30 19:24 被阅读0次

    起因

    今天面试被问到post和get的区别,说实话感觉太枯燥了。老生常谈了,然后我便如同念经一般把w3c上面的那张图背的差不多,答了出来。但是面试官似乎不是那么满意,给我说还有关键点没答道,我又回想起我这张图没啥可说的啦。然后他说没看透本质,哦,装逼还是你强。现在先给我的祖传get,post图展示出来;


    1606733313(1).png

    这就是w3c列举的一些列不同,针对几个点我们在说一下:
    1.缓存问题:get请求通常是能被缓存的,你随便打开一个网页,里面的静态资源经常是被缓存的有一个属性叫做cache-control,这也是http缓存协议也是面试中很爱问的一个问题;
    2.书签问题:第一次看到这个的时候,我是不太理解的,收藏为书签有啥可以不可以的。后面又看了下http的一些文章,大概了解到,你收藏的书签的请求,post的参数并没有保留,也就是只有url访问,post的请求参数并没有这会导致出错,所以浏览器针对这个书签都是url的get请求,并没有post。

    反思

    既然面试官都说有问题,那么下来也就从新搜索了下相关的文章。在次学习下这个知识;也从一些文章上面从新了解了一下;

    参考链接

    99%的人都理解错了 HTTP 中 GET 与 POST 的区别

    大致内容总结

    1.post和get本质上是没区别的,HTTP的底层是TCP/IP,get post他们都是tcp的链接,为了起到一种规范的作用,http把这些链接分为几类,然后也有了一些限制;所以post和get呈现不同的表现形式;
    2.数据长度的跟http都没啥关系,这是请求商浏览器和资源商服务器做的限制,害怕恶意的长url所以有了限制;大概也就图中所列2kb;
    3.GET产生一个TCP数据包;POST产生两个TCP数据包。大体解释:对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。(这里说明一下,经网友的测试貌似这个第三条并不是这么回事,所以到底怎么回事还不清楚)

    相关文章

      网友评论

          本文标题:get post的区别再次理解。

          本文链接:https://www.haomeiwen.com/subject/fildwktx.html