一,HTTP协议下的请求、响应结构
-
在httpwatch工具下的http协议的截取:
-
HTTP协议时浏览器和服务器之间的一种通讯协议,数据格式已经制定好了的由W3C制定好了的。
2.1 我们使用的http协议号时http1.1。
2.2 http包括几个部分?
- 请求协议:从Browser发送采用;
- 相应协议:从Servlet发送采用;2.3 请求协议:包括四部分 请求行、消息报头、空白行、请求体
请求行包括:请求方式 URI 协议版本号。
空白行:专门用来分离消息报头和请求体的。
2.4 响应协议: 包括四部分 状态行、响应报头、空白行、响应体
状态行:协议版本号 状态码 状态描述信息;
空白行:分离响应报头和响应体;
注意:这里的状态码是200表示ok。
二,GET请求和POST请求的区别?
-
POST的请求方式:只有当使用form表单,并且将form表单的method属性设置为method=“post”的情况下才是POST请求方式,剩下的方式都是GET方式的。
-
区别:
- Get请求在请求行上提交数据,格式:uri?name=value&name=value&name…;这种方式最终会在浏览器地址栏上显示。
- Post请求在请求体中提交数据,相对安全,格式:name=value&name=value;这种方式最终不会在浏览器地址栏上显示。- Get请求在请求行上提交数据,所以Get请求有长度限制,只能提交字符串。 - Post请求在请求体中提交,所以post请求提交的数据没有长度限制,可提交大数据,任何类型的数据; - Get请求最终结果会被浏览器缓存。响应会高一些。 - Post请求最终结果不会被浏览器缓存。
-
应用时的选择
POST:
- 有敏感数据,必须使用POST
- 传输数据很多,使用POST
- 请求修改服务器端资源,使用POST(每一次修改结果可能是不同的,所以不会被缓存。)
GET:
- Get请求多数情况下是为了从服务器端读取资源,这个读取的资源在短时间内是不会发生变化的,所以GET请求最终的结果浏览器会缓存。
- 如果不希望缓存,可以使用时间戳的方式。