servletRequest获取请求消息
分为4部分
1.请求行
格式:
请求方式 请求url 请求协议/版本
GET /login.html HTTP/1.1
特点:
行和头之间没有任何分隔,请求行下面就连着请求头
请求方式:
HTTP协议有7种请求方式,常用的有两种
get:
1.请求参数在请求行中,url后
2.请求的url有长度限制
3.不安全,信息都在url后
post:
1.请求参数在请求体中
2.请求的url长度没有限制
3.相对安全,信息在请求体中
文件的上传只能用post方式,文件大,超出了get请求的url限制
2.请求头(告诉服务器浏览器的一些信息)
请求头名称:请求值
多个值用,分隔开
常见的请求头
Host:请求主机的地址
会在编程的时候使用
2.Accept:告诉服务器,浏览器可以接收什么样响应信息的格式
3.Accept-Language:浏览器可以支持的语言环境
4.Accept-Encoding:可以接收的压缩格式
5.Referer:
Referer: http://localhost:8080/login.html
告诉服务器我(当前请求)从哪里来?
1.防盗链:
2.统计工作:
6.Connection:一直活着的。表示连接可以被复用
Connection: keep-alive
Upgrade-Insecure-Requests: 1升级的信息
3.请求空行
空行:分隔作用,分隔post请求头和请求体
4.请求体(正文)封装post请求消息的请求参数
get方式没有请求体
post就会出现请求体
具体的字符串格式 (火狐F12网络)
GET/login.html HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Thu, 20 Feb 2020 04:47:18 GMT
If-None-Match: W/"272-1582174038444"
POST /login.html HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
Origin: http://localhost:8080
Connection: keep-alive
Referer: http://localhost:8080/login.html
Upgrade-Insecure-Requests: 1
username=zhang