前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GET和POST本质无非就是TCP链接而已?

GET和POST本质无非就是TCP链接而已?

原创
作者头像
菜鸟级前端爱好者
修改2021-12-20 14:16:00
8260
修改2021-12-20 14:16:00
举报

热身篇想要彻底掌握h必须要了解的一些知识点。

browser

长度限制

chrome(谷歌)

url长度限制超过8182个字符返回本文开头时列出的错误。

Microsoft Internet Explorer(IE浏览器)

url长度限制是2083(2K+53),超过这个限制,则自动截断(若是form提交则提交按钮不起作用)

firefox(火狐浏览器)

url长度限制为 65 536字符,但实际上有效的URL最大长度不少于100,000个字符。

Safari

长度限制至少为 80 000 字符。

Opera 浏览器

的url长度限制为190 000 字符。Opera 9 地址栏中输入190 000字符时依然能正常编辑。

Status状态码

状态码

解释

200

OK 请求成功,一般用于GET和请求状态

300

如果服务器本身已经有了首选的回馈选择,那么在 Location 中应当指明这个回馈的 URI;浏览器可能会将这个 Location 值作为自动重定向的地址。此外,除非额外指定,否则这个响应也是可缓存的。

301

被请求的资源已永久移动到新位置,注意:对于某些使用 HTTP/1.0 协议的浏览器,当它们发送的 POST 请求得到了一个301响应的话,接下来的重定向请求将会变成 GET 方式。

302

请求的资源临时从不同的 URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

400

Bad Request客户端请求的语法错误,服务器无法理解

401

Unauthorized 客户要求用户的身份认证

402

Payment RequIred 保留,将来使用

403

Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求

404

Not Found 服务器无法根据客户端的请求找到字段(网页)。通过此代码,网站

405

Method Not Allowed客户端请求中的方法被禁止

415

对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。

500

Internal Sarver Error 服务器内部错误,无法完成请求

501

Internal Implemented 服务器不支持请求的功能,无法完成请求

502

Bad Gateay 作为网关或者代理工作的服务器尝试执行请求时,从远成服务器接收到一个无效的相应

504

Gateway Time-out 充当网关或代理的服务器,危机时从远端服务器获取请求

505

HTTPVersion not supprted服务器不支持请求的HTTP协议的版本,无法完成处理

来不及解释了直接上硬货~~~

我们在公司和后端进行联调的时候,POSTGET就是我们最常用的请求方式了。

可是你真的了解POSTGET请求嘛?

GET

POST

记录缓存

请求的参数/记录会被浏览器进行保留历史记录,GET在浏览器回退时是无害的

POST并不会被保存相对于更安全一些,回退时POST会再次发起请求

内存限制

由于GET请求参数会在URL上展示,上面也有说道URL有一定的限制,所以也会影响到GET的传参

POST请求理论上没有限制的,主要是后台服务器做的限制,比如在Tomcat下取消POST大小的限制(Tomcat默认2M)

安全性

GET请求方式消息中不能包含实体内容,,所以GET请求的时候可以把参数暴漏在URL上面,如果一些隐私数据就显得不够安全

POST请求我们可以使用Form表单方式和JSON进行传参

收藏书签

可以收藏

并不会被收藏

可见性

参数可以被所有人都可见

不会展示在URL中

美观

GET请求参数过多的话会显示杂乱不堪不易被理解

POST可以自定义格式字段等一些信息易读性更高

参数类型

GET只接受ASCII字符

而POST没有限制。

前方高能总结请注意请拿起纸巾~~~

HTTP/HTTPS协议中是基于IP/TCP,而POSTGET底层也是TCP/IP,也可以说是GETPOST都是TCP链接,而GETPOST能做的事情都是一样的,你要给GET加上Request BodyPOST带上URL参数技术上也是完全可以行得通的~

总结:

  • GETPOST都有自己的语义,不能随便混用。
  • GET 会产生一个TCP数据包,POST产生两个TCP数据包
  • 对于GET方式请求,浏览器会把http Request和Data一起发送出去,服务器响应200(状态码)
  • POST,浏览器回先发送Header,服务器响应100 Content,浏览器在发送Data,服务器响应200(状态码)。也并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
  • 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档