http请求数据
现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。
原始的http格式信息:
 就是按照一定格式和符号的字符串:
请求行:格式如下图
 请求头:一个个key,value数据,用,分割多个,是客户端想给服务端说的一些话,服务器可以来解析这些信息。key是固定的,值是不一样的。
 请求空行:就是一个空行,用来分隔请求头和请求体的作用。
 请求体:get方式没有请求体,换成post方式有,就是请求的一些参数数据。
 
请求行

请求头
请求头还有很多,后面学更多才能知道
 先解释一下下图的几个常见的请求头:
 
 
 host:请求的主机是localhost
 User-Agent:服务器根据浏览器不同做不同的处理
 Accept:我这个浏览器可以接收你给我什么样的响应的信息格式,*/*是什么格式都可以
 language:我浏览器可以支持的语言环境
 encoding:我可以接收的压缩格式
 connection:我的连接还活着,活着表示连接可以被复用,http1.1是可以被复用的,1.0的这里应该是断开的值。
 **referer:**比较重要,告诉服务器我这个请求从哪来。在早期很有用,那时候版权意识不强,现在用的不多了。
 防盗链,统计:
 
请求体
get请求没有请求体
 
request和response的原理

 
request的继承体系
实现类RequestFacade是由tomcat创建的。
 
request的功能
http格式的数据由四部分构成:
 请求行
 请求头
 请求体
 request的功能:
 
获取请求消息数据
获取请求行数据

 代码演示:
获取请求头数据

 代码演示:
 
 refer演示:
 
 response的意思先不解释,先这么写:
 
获取请求体数据
字符数据:username=“张三”
 字节数据:上传文件,图片,视频
 所以获取流对象有两种流,一种是字节流,一种是字符流。
 
 代码演示字符输入流:
 
 
 
 
其他功能:
获取请求参数通用方式
上面方法常用的就这三个:其余的都不是很常用
 
 
 
 基于上面那些,又有一些方法更方便使用request对象,这些都很常用:
 
 代码举例:
中文乱码问题:
举例:
 
 
 乱码了:
 
 但是使用get方式,就不会乱码了。
说明:
 如果是tomcat8及其以上版本,get方式不会乱码了,tomcat内部帮解决完了。
 原因:
 get方式参数是在url里面的,post方式参数通过request.getParameter(“username”)获取,内部通过是是流来获取的参数的值,所以需要在get获取之前设置一下流的编码:
 
 页面上是什么编码,这边就改成什么编码:
 
 总结:不管get,post直接都在第一行写上就行
 
请求转发
一种在服务器内部的资源跳转方式.
情景:
 aservlet里面的功能在bservlet里面实现,所以相当于aservlet里做了一部分后,跳转到bservlet。
 就可以使用请求转发完成。
 
 举例:
 
 
共享数据
情景:
 aservlet期望发送一些数据给bservelt,数据怎么通信。
域:范围的意思
 request域:
 代表一次请求的这个范围。基本就在转发的时候用,a调用b,就在一次请求的这个范围内。
 a在里面用request存储了一些数据(转发之前存储),由于request对象的范围包括b,所以b可以获得这个数据。
 
举例:
 
获取ServletContext
今天先看怎么获取,不说获取后的功能怎么用。
 
 举例:
 










![[Meachines] [Medium] MonitorsThree SQLI+Cacti-CMS-RCE+Duplicati权限提升](https://img-blog.csdnimg.cn/img_convert/ec0a89c20cb3cca3b2df26efab562a59.jpeg)








