原文:https://www.jianshu.com/p/d2716d8cd823
request和response的作用执行流程
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。
故:当需要获取客户机提交过来的数据时,找request对象就行了。
当需要向客户机输出数据,找response对象。
请求响应的具体现实流程:
1.浏览器发送请求
2.服务器接收请求,创建两个对象(request和response),将请求的信息封装request对象
3.找到对应的servlet,将这两个对象传递给servlet
4.Servlet收到请求,执行service方法,处理自己的业务逻辑,生成动态的内容,将内容返回给服务器
5.服务器收到内容之后,进行拆分,生成响应信息,返回给浏览器
6.浏览器解析
request
请求:要想获取浏览器发送过来的参数,通过request就可以了
1.HttpServletRequest对象用于封装http请求,对于http请求它有三部分组成,http请求行,http请求头及请求正文,
常用方法:
2.request操作请求行
格式:请求方式 请求资源 协议/版本
例子:GET /day10 HTTP/1.1
response
响应:用于向浏览器写东西
1.response常用方法:
2.response操作响应行(操作状态码)
格式:协议/版本 状态码 状态码说明
例如:HTTP/1.1 200 OK
在http响应行中,包括协议,版本号,以及有一个很重要的值,它叫做响应状态码.响应行中我们主要就是操作这些状态码,它可以有五种类型取值:
100-199
200-299
300-399
400-499
500-599
常用状态码
200请求成功(其后是对GET和POST请求的应答文档。)
302所请求的页面已经临时转移至新的url。(重定向)(配合location响应头使用)
304未按预期修改文档。(让浏览器读缓存)
客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since(什么时候修改的))头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
404没有找到文件或目录。(用户操作错误)
405请求中指定的方法不被允许
500请求未完成。服务器遇到不可预知的情况(代码错误)
504网关错误.