挑灯夜读——计算机网络:GET和POST

计算机网路:GET和POST分析

    • 主要区别
    • 实现原理
    • POST一定安全吗?
    • 两者传输次数
      • 总结

主要区别

  • 首先这两者是什么?

在HTTP1.0时,我们的请求方法只有三个,分别为:GET、POST和HEAD。
在HTTP1.1后,我们在协议请求中添加了五个方法,包括DELETE、TRANCE、PUT、OPTIONS和CONNECT方法。

  • 那么问题来了,我们这么多请求都是干什么的呢?
  • 看字的含义便知,这些请求头主要的作用包括,获取、传递、删除、连接等:
  • 我们最常用的便是GET和POST
区别GETPOST
参数长度限制参数长度无限制
参数显隐性不会隐藏参数,不安全会隐藏参数,比较安全,内容在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的简单介绍,接下来就继续讲解了我们的响应码。然后就是一些心得体会,暑假学校实习即将结束,后面的实习工作到底去哪里呢?现在还是觉得平安健康比较对口,虽然工资不高。而我们的广发银行啊,到底在干什么工作,都不得而知。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部