*概念:Hyper Text Transfer Protocol 超文本传输协议
*传输协议:定义了,客户端和服务器端通信时,发送数据的格式
*特点:
1.基于ICP\IP的高级协议
2.默认端口号:80
3.基于请求\响应模型的:一次请求对应一次响应
4.无状态的:每次请求之间互相独立,不能交互数据
*历史版本:
1.0:每一次请求响应都会建立新的连接(页面上的一个图片都会发出一个请求)
1.1:复用连接
*请求消息数据格式:
1.请求行
请求方式 请求url 请求协议/版本
GET/test01.html HTTP/1.1
*请求方式:
*HTTP协议有7种请求方式,常用的有2种
*GET:
1.请求参数在请求行中,在url后
2.请求的url长度有限制的
*POST:
1.请求参数在请求体中
2.请求的url长度没有限制的
2.请求头:客户端浏览器告诉服务器一些信息
请求头名称:请求值
*常见的请求头:
1.User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
*可以在服务器端获取该头的信息,解决浏览器的兼容性问题
2.Referer:http://localhost/login.html
*告诉服务,我(当前请求)从哪里来
*作用:
1.防盗链//获取请求头数据:referer
String referer = request.getHeader("referer");
System.out.println(referer);//http://localhost:8080/ServersDemo/index.html
//防盗链
if(referer!=null){
if(referer.contains("/ServersDemo")){
//正常访问
System.out.println("播放电影");
}else{
//盗链
System.out.println("想看电影吗?来优酷吧");
}
}
2.统计工作
3.请求空行
空行 就是用于分割POST请求的请求头,和请求体的
4.请求体(正文)
*封装post请求消息的请求参数的
*响应消息数据格式: