HTTP中的请求与响应

HTTP中的请求与响应,第1张

我们日常与互联网通信时是有一系列流程的。我们的电脑发出请求,服务器端会回复我们需要的信息。这些流程是可以通过可视化的程序显示。下面就介绍一下。

HTTP 的作用就是指导浏览器和服务器如何进行沟通。

-请求命令

-请求的格式

1所在行为第一部分,一下以此类推。一共有四部分。

-注意:

1.请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)

2.第三部分永远都是一个回车(\n)

3.动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等

4.这里的路径包括「查询参数」,但不包括「锚点」

5.如果你没有写路径,那么路径默认为 /

6.第 2 部分中的 Content-Type 标注了第 4 部分的格式

1.打开 Network

2.地址栏输入网址

3.在 Network 点击,查看 request,点击「view source」

4.点击「view source」

5.可以看到请求的前三部分,如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

请求过后一般都能有相应。

-注意:

1.GET 请求和 POST 请求对应的响应可以一样,也可以不一样

2.响应的第四部分可以很长很长

-响应的格式

-注意:

1.状态码需要记,是服务器对浏览器说的话

2.状态解释没什么用

3.第 2 部分中的 Content-Type 标注了第 4 部分的格式

4.第 2 部分中的 Content-Type 遵循 MIME 规范

1.打开 Network

2.地址栏输入网址

3.选中第一个响应

4.查看 Response Headers,点击「view source」

5.你会看到响应的前两部分

6.查看 Response 或者 Preview,你会看到响应的第 4 部分

request就是前端(比如浏览器)向后台服务器发送的请求,也就是要求服务器做什么;

response则是后台服务器在处理完前端的请求后向前端发送的响应,也就是对前端请求所作出的回应。

这其实就是一次网络通讯的两个步骤,它们共同组成了一次完整的网络对话流程。

先来看一个流程图:

服务器处理请求的流程:

(1)服务器每次收到请求时,都会为这个请求开辟一个新的线程。

(2)服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!

(3)服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。

由流程图可以看出,在JavaWeb的请求与响应中,最重要的两个参数为request以及response,这两参数在Servlet的service( )方法中。

1、response概念:

response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来对客户端进行响应的,这说明在service()方法中使用response对象可以完成对客户端的响应工作。

response对象的功能分为以下四种:

(1)设置响应头信息

(2)发送状态码

(3)设置响应正文

(4)重定向

2、response响应正文

response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流,repsonse一共提供了两个响应流对象:

(1)PrintWriter out = response.getWriter():获取字符流;

(2)ServletOutputStream out = response.getOutputStream():获取字节流;

当然,如果响应正文内容为字符,那么使用response.getWriter(),如果响应内容是字节,例如下载时,那么可以使用response.getOutputStream()。

注意,在一个请求中,不能同时使用这两个流!也就是说,要么你使用repsonse.getWriter(),要么使用response.getOutputStream(),但不能同时使用这两个流。不然会抛出illegalStateException异常。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/629557.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-17
下一篇2023-07-17

发表评论

登录后才能评论

评论列表(0条)

    保存