前言
HTTP协议:超文本传输协议。是我们在互联网通信所必须遵守的一组规则和约定。通过对它的了解可以让我们在开发过程中更加的容易和快速。
一、HTTP的特点
- 基于TCP/IP的高级协议
- 默认端口号是8080
- 基于请求/响应模型的,一次请求对应一次响应
- 无状态的协议:每次请求之间相互独立,不能交互数据
二、请求消息数据格式
1.请求行
组成:请求方式 请求url 请求协议/版本
请求方式:HTTP协议有7种请求方式,常用两种
1. GET:
请求参数在请求行中,在url后
请求的url长度有限制
不太安全
2. POST:
请求参数在请求体中
请求的url长度没有限制的
相对安全
请求行例子:GET /login.html HTTP/1.1
2.请求头
组成:请求头名称 : 请求头值
常见的请求头
User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息:可以在服务器端获取该头的信息,解决浏览器的兼容问题
Referer : http://localhost/login.html:告诉服务器,当前请求从哪里来?
作用
防盗链
统计工作
功能:客户端浏览器告诉服务器一些信息
3.请求空行
空行
用于分割POST请求的请求头和请求体的。
4.请求体(正文)
正文
封装POST请求消息的请求参数的
三、响应消息数据格式
1.响应行
组成:
协议/版本 响应状态码 状态码描述
响应状态码:
服务器告诉客户端浏览器本次请求和响应的一个状态
状态码都是3位数字
分类:
1xx
服务器接收客户端消息,但没有接收完成,等待一段时间后,发送1xx多状态码
2xx
成功。代表:200
3xx
重定向。代表:302(重定向)、304(访问缓存)
4xx
客户端错误。代表:404(请求路径没有对应资源)、405(请求方式没有对应的doxx方法)
5xx
服务器端错误。代表:500(服务器内部出现异常)
2.响应头
格式:头名称 :值
常见的响应头:
Content-type:服务器告诉客户端本次响应体数据格式以及编码格式
Content-disposition:服务器告诉客户端以什么格式打开响应体数据
值
默认值:in-line:在当前页面打开
attachment:filename=xxx 以附件形式打开响应体。文件下载中使用
3.响应空行
服务器对客户端的响应
4.响应体
真实的传输数据
总结
HTTP的学习还是在它的请求消息格式和响应消息格式,这有利用后面Java代码对前端内容的处理,同时也要指定get和post的区别,会成为面试最常见的面试内容。