深刻浅出篇 — Get与Post请求区别

一. HTTP协议

  1. http协议分为两个部分:
  • 请求 Request
  • 响应 Response
  1. 其中请求方式又分为 GET 和 POST

请求头字段中:

  1. 第一行:请求方式 url 协议版本
  2. 实例:
  • get /path?a=1&b=2 http1.1 这里是不带域名的url 即http协议源码格式 (在后面的host里说明了域名)
  • host(主机):www.baidu.com
  • Connection(链接方式):keep-alive 长链接
  • user-Agent : 客户端 用来记录本身是什么浏览器的

响应头字段中:

  1. 响应头第一行:协议版本 状态码 message(信息)
  2. 以后也都是属性和值的字段
  3. 实例:
  • Cache-Control:max-age = 86400 信息缓存保留的时间

二. IP地址

  1. Ip地址的格式
  • Ip地址分为四个段,每一个段0~255,每一个段都是由8个0、1组成的
  1. Ip地址的分类:
  • 一个Ip地址分为两个部分:网络Id,主机Id
  • A类 0.0.0.0-127.255.255.255 (一个网络能有1600+万台)
  • B类 128.0.0.0~191.255.255.255
  • C类 192.0.0.0~223.255.255.255 (能容纳较少)
  • D类 多播地址
  • E类
  1. 在同一个网络内,IP地址不能重复
  2. 若是你想搭建一个服务器,让别人可以访问到,就必须有一个公网Ip

三. GET与Post请求的区别

  1. 要看是基于什么前提的,若什么前提都没有,不使用任何规范,只考虑语法和理论上的http协议,get和post几乎没有任何区别,只有名字不同而已
  2. 若是是基于RFC规范的
  • 理论上的(specification) --- get和post是具备相同的语法的,可是有不一样的语义,get是用来获取数据的,post是用来发送数据的,其余方面没有区别
  • 实现上的(implementation) --- 各类浏览器,就是这个规范的实现者
就是由于基于浏览器实现上的,因此有了各类不一样:
1)GET数据在URL上是可见的,post请求不显示在url上的
2)get请求对长度是有限制的,post长度是无限的
3)get请求的数据能够收藏为书签,post请求到的数据不可收藏为标签
4)get请求后,按后退按钮/刷新按钮无影响,post数据会被从新提交
5) get编码类型 : application/x-www-form-url,
    post的编码类型:有不少种encodeapplication/x-www-form-urlencoded  或 multipart/form-data
6) get历史参数会被保留在浏览器里,post不会保存在浏览器中
7)get只容许ASCII  post没有编码限制,容许发二进制的
8)get与post相比,get的安全性较差,由于所发的数据是URL的一部分
复制代码
相关文章
相关标签/搜索