简述

  我们在servlet的service方法中有两个参数,分别是ServletRequest和ServletResponse,如果想掌握这两个参数,我们必须对请求消息和相应消息有个深入的理解。

请求消息

  请求消息本质上就是客户端告诉服务器的一些信息。

  请求消息由请求行、请求头、请求空行、请求体组成。

  像这样就是一个完整的请求消息

POST /login.html    HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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
Referer: http://localhost/login.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1

请求行

  请求方式 请求url 请求协议/版本
  例:   GET /login.html HTTP/1.1

  * 请求方式:
  * HTTP协议有7中请求方式,常用的有2种
  * GET:
  1. 请求参数在请求行中,在url后。
  2. 请求的url长度有限制的
  3. 不太安全
  * POST:
  1. 请求参数在请求体中
  2. 请求的url长度没有限制的
  3. 相对安全

  如果面试问你,get请求和post请求有什么区别,那么请看超人:https://www.cnblogs.com/logsharing/p/8448446.html

请求头

  格式:请求头名称: 请求头值

  例: Host: localhost

  注意值有多个的情况下值用逗号隔开

  例如这样就是一个整个的请求头

Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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
Referer: http://localhost/login.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1

  常见的请求头:

  1.User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息,可以在服务器端获取该头的信息,解决浏览器的兼容性问题

  2.Accept: 我作为浏览器可以解析哪些文件

  3.Referer:http://localhost/login.html : 告诉服务器,我(当前请求)从哪里来?可以防盗链

    什么是盗链呢?意思是一些盗版网站用了别人网站的链接

请求消息详解(请求头、get、post、请求体-编程知识网

  同时Referer头可以做一个来源统计的操作。

  4.Connection: 连接是否可以被复用

请求空行

  请求空行就是一个空行,意思就是告诉服务器从下一行开始就没有请求头了

请求体

  注意get请求是没有请求体的,只有post请求有请求体

  请求体是以键值对的方式传输的

  post的请求体就是以键值对

一点一点积累,一点一点蜕变!