挑灯夜读——计算机网络:GET和POST
计算机网路:GET和POST分析
- 主要区别
- 实现原理
- POST一定安全吗?
- 两者传输次数
- 总结
主要区别
- 首先这两者是什么?
在HTTP1.0时,我们的请求方法只有三个,分别为:GET、POST和HEAD。
在HTTP1.1后,我们在协议请求中添加了五个方法,包括DELETE、TRANCE、PUT、OPTIONS和CONNECT方法。
- 那么问题来了,我们这么多请求都是干什么的呢?
- 看字的含义便知,这些请求头主要的作用包括,获取、传递、删除、连接等:
- 我们最常用的便是GET和POST
| 区别 | GET | POST |
|---|---|---|
| 参数长度 | 限制参数长度 | 无限制 |
| 参数显隐性 | 不会隐藏参数,不安全 | 会隐藏参数,比较安全,内容在body中 |
| 参数数据类型 | 必须ASCII字符 | 没有要求 |
| 参数保留 | 会保留至浏览器历史记录 | 不会保留 |
| 编码方式 | 只进行url编码 | 支持多种编码方式 |
| … |
实现原理
- 其实,我们的GET和POST底层都是TCP/IP的原理实现,本来别无二样,也就是说,GET能干的,POST也能干,相反一样。但是我们之所以会区分两者,主要是为了更加方便管理和使用。
前面我们在网络连接中,介绍过,我们的url在输入浏览器中,会进行域名解析,包的创建,TCP/IP的传递,以及通过协议栈向最近的集线器发送包等。我们看到前面使用的关于TCP/IP传输的步骤,在该步骤中,我们会创建请求体来传递信息。
- 我们的TCP相当于在路上行驶的汽车,而HTTP就是交通规则,我们的汽车必须遵守这样的交规。
- 而
GET因为参数可见,就像一个浑身挂满信息的汽车,把它的名字和密码都挂在了汽车上,很不安全。 POST则将我们的参数信息放在了车的里面。我们看不见它的信息,也就相对来说比较安全。
当然,我们的GET也可以将一些信息放入Request Body中,隐藏起来,但是我们的服务器可能会无视这些信息或者直接处理掉这些信息。
- 所以,本质上GET和POST两者都是TCP链接,但是由于浏览器和服务器的差别,导致了他们在应用中出现了不同的表现。
POST一定安全吗?
- 前面提到,我们的GET会将重要信息直接放在请求参数中,比如:
http://ip:port/index/hello?username=dzbobo&age=18&pwd=123456
- 可以看到信息都展示出来了,其安全性完全无法保证。
但是POST一定是安全的吗?
当然不是!!!
- 首先,虽然POST将信息存入Request Body中,有一定的隐蔽性,但是我们可以在任何一个节点对其信息进行捉包或收听,这种未加密的参数很容易被获取。
- 因此,为了确保安全性,最好使用HTTPS加密协议
两者传输次数
- GET在请求时,产生一个TCP的数据包,包括header和data,返回服务器响应码200。而我们的POST会产生两个TCP的数据包。分别为Header和data,先由服务器返回100响应码,然后返回200响应码。
- 但是,POST一点都不比GET慢
- 因为一般的网速条件下,都能无差别的传输这些数据。
让我们来回忆一下服务器响应码
| 响应码 | 含义 |
|---|---|
| 2叉叉 | 服务器成功处理了响应码 |
| 3叉叉 | 要完成请求,需要进一步操作 |
| 4叉叉 | 请求出错,妨碍了服务器处理 |
| 5叉叉 | 服务器内部错误,并非请求错误 |
- 很多内容来自【狼王编程】
总结
- 以上是我们的GET和POST的简单介绍,接下来就继续讲解了我们的响应码。然后就是一些心得体会,暑假学校实习即将结束,后面的实习工作到底去哪里呢?现在还是觉得平安健康比较对口,虽然工资不高。而我们的广发银行啊,到底在干什么工作,都不得而知。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
