1.http协议
1.1 概念
是对浏览器和服务器端数据传输格式的规范!
1.2 http协议内容
- 请求
- 响应
2.http请求
2.1 请求行
GET /day08/first HTTP/1.1
http协议版本:http1.0: 当浏览器和服务器连接之后,在一次连接中只能发出一个请求;
http1.1:当浏览器和服务器连接之后,在一次连接中可以发出多次请求。(效率比1.0更高);
请求资源:请求服务器的哪个资源文件
/day08/first : URI: 统一资源描述符。可以描述任何文件,本地,互联网;
http://localhsot:8080/day08/first:URL : 统一资源定位符,互联网(基于http协议) ,是URI的子集。
请求方式(提交方式):
http协议中的请求方式:GET、POST、HEAD、PUT、CONNECT。。。。
最常用的的请求方式: GET 和 POST
2.2 请求头
2.3 案例- user-agent头 -- 获取浏览器类型
2.4 案例- referer头 --- 防止非法链接
第一次:下载资源 - > 下载页面 -> 打开广告页面(下载链接) -> 开始下载
第二次:直接点击下载链接 -> 跳转广告页面(下载链接) -> 开始下载
非法请求:
1)直接访问下载资源
2)不是从广告页面过来的请求
住:referer请求头只有从超链接过来的请求才有这个头**
2.5 获取参数数据
get: 放在请求行的URI后面
post: 放在请求的实体内容
原生 HttpServlet
reuqest.getParameter("name") 获取一个值的参数
request.getParameterValue("name") 获取多个值的参数
request.getParameterNames() 获取所有参数名称
request.getParameterMap() 获取所有参数对象
解决get乱码问题:手动解码
if("GET".equals(request.getMethod())){
name = new String(name.getBytes("iso-8859-1"),"utf-8");
}
解决post乱码问题:
request.setCharacterEncoding("utf-8");
3.Http响应
3.1 响应行
状态码:当前服务器处理请求的状态(结果)
常见的状态码:
302: 需要浏览器进一步请求,才能完成。
404: 浏览器端的错误。没有找到资源。
500: 服务器端的错误。