http基础

1.http协议

1.1 概念

是对浏览器和服务器端数据传输格式的规范!

1.2 http协议内容
  • 请求
http基础_第1张图片
Paste_Image.png
  • 响应
http基础_第2张图片
Paste_Image.png

2.http请求

http基础_第3张图片
Paste_Image.png
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 请求头
http基础_第4张图片
Paste_Image.png
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响应

http基础_第5张图片
Paste_Image.png
3.1 响应行

状态码:当前服务器处理请求的状态(结果)
常见的状态码:
302: 需要浏览器进一步请求,才能完成。
404: 浏览器端的错误。没有找到资源。
500: 服务器端的错误。

3.2 响应头
http基础_第6张图片
Paste_Image.png

你可能感兴趣的:(http基础)