Java-Http协议
一、Http协议基本介绍
传输协议:规定了客户端和服务器端通信的基本规则。
HTTP:Hypber Text Transfer Protocol(超文本传输协议)。
注意事项:
1.Http协议是基于TCP/IP的高级协议。
2.默认端口号为80。
3.一次请求一次响应(基于请求/响应模型)。
4.各个响应状态之间相互独立,不能进行交互。
版本:
HTTP 1.0:每次请求都会建立新的连接
HTTP 1.1:可以复用连接,即从第一次请求建立连接后,连接不会中断,会等待一段时间,看是否还有请求发生,如果没有请求即停止。
二、Http请求消息介绍
请求消息:客户端向服务器端发消息。
请求消息数据格式:
1.请求行
格式:请求方式 协议/版本 GET HTTP/1.1
请求方式总共有7种,常用的有两种:
1.GET:
*请求参数在请求行中
*请求的URL长度有限制
*不太安全(因为输入的信息可以显示在地址栏)
2.POST:
*请求参数在请求体中
*请求的URL长度没有限制,文件上传一般都有POST
*相对较为安全
2.请求头:
格式:请求头名称:请求头值
常见请求头:
*User-Agent:浏览器告诉服务器自己的版本信息
*可以在服务器端获取此名称,解决兼容性问题
*Referer:告诉服务器访问的源地址
*作用:
*防盗链:可以用此进行判断进行访问的是否为指定网址
*统计工作:统计访问的网站的数目
3.请求空行:就是一个空行
4.请求体:用于封装POST请求消息
5.其它关键信息:
Accept-Encoding:支持的压缩格式
Accept-Language:支持的语言
Connection:连接状态
Host:访问的主机地址
三、Http响应消息介绍
响应消息:服务器端向客户端发送消息
响应消息数据格式:
1.响应行:
格式:协议/版本号 响应状态码 状态码描述
HTTP/1.1 200 OK
响应状态码(都是三位数字):
(1)1XX:客户端向服务器发送数据,未发送完,服务器等待一段时间后会发送1XX进行询问。
(2)2XX:代表响应完成,代表数字为200。
(3)3XX:重定向
代表数字:
*302(重定向):客户端向服务器请求资源,访问某一个资源文件,但是此资源文件上没有客户端需要的资源,但是此文件知道客户端需要的资源的位置,会返回302,并返回目标地址。
*303(访问缓冲):以请求图片为例,客户端第一次向服务器进行图片资源的请求,服务器进行响应,传输数据,客户端浏览器会将传输过来的图片缓存到本地,当客户端浏览器再次进行请求相同的图片资源时,服务器会发送303,告诉浏览器去访问本地的缓存。避免了再次传输图片的时间和资源消耗。
(4)4XX:客户端错误
代表数字:
*404:未找到对应资源,客户端请求访问路径错误(资源路径写错了)。
*405:请求方式中没有doXXX方法(需要对代码进行检查)。
(5)5XX:服务器端错误
*500:服务器内部出现异常,代码出现异常,tomcat会将错误信息打印在页面上,方便查找。
2.响应头:
格式:响应头名称:值
常见的响应头:
*Content-Type:服务器端告诉客户端响应体编码格式及数据格式
*Content-disposion:服务器端告诉客户端以什么格式打开响应体数据
*in-line:在当前页面打开,默认值
*attachment:以附件形式打开,
3.响应空行:空行
4.响应体:响应的数据