概念
超文本传输协议,规定了浏览器和服务器之间的数据传输的规则
HTTP协议特点:
- 基于TCP协议:面向连接,安全
- 基于请求-响应模型:一次请求对应一次响应
- HTTP协议是无状态的协议:对应事务处理没有记忆能力。每次请求-响应都是独立的
缺点:多次请求间不能共享数据。Java利用会话技术(Cookie,Session)来解决这个问题
优点:速度快
HTTP-请求数据格式
- 请求行:请求数据第一行
- 请求头:第二行开始,格式为:key:value形式
- 请求体:POST请求的最后一部分,存放请求参数
Get和Post请求方式区别
url可见性
- get,参数url可见
- post,url参数不可见
数据传输上
- get,通过拼接字符串url进行传递参数
- post,通过body体传输参数
缓存性
- get请求可以缓存
- post请求不可以缓存
后退页面反应
- get请求页面后退时,不产生影响
- post请求页面后退时,会重新提交请求
传输数据的大小
- get传输数据不超过2k—4k(根据浏览器不同,限制不一样,但相差不大)
- post请求传输数据的大小根据php.ini配置文件设定,也可以无限大
安全性
因为get传递参数在url可见,所以get的安全性比post低
HTTP响应数据格式
- 响应行:响应数据的第一行。其中HTTP/1.1表示协议版本,200代表响应状态码,OK表示状态码描述
- 响应头:第二行开始,格式为key:value形式
- 响应体:最后一部分。存放响应数据
响应状态码
1XX:响应中——临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它
2XX:成功——表示请求已经被成功接收,处理完成
3XX:重定向——重定向到其他地方,它让客户端再发起一个请求以完成整个处理
4XX:客户端错误——处理发生错误,责任在客户端,如:客户端请求一个不存在的资源,客户端未被授权,禁止访问
5XX:服务器错误——处理发生错误,责任在服务端,如:服务端抛出异常,路由错误,HTTP版本不支持等