asp网站搭建教程,做网站备案完成之后需要干什么,网站判断手机跳转代码,wordpress缓存设置一、springboot处理http请求的过程 1、客户端发起HTTP请求#xff0c;经过网络传输到服务器 HTTP请求通常由浏览器、Postman、curl或其他HTTP客户端发起#xff0c;客户端的HTTP请求通过网络#xff08;通常是TCP/IP协议#xff09;传输到服务器#xff0c;这个请求首先会…一、springboot处理http请求的过程 1、客户端发起HTTP请求经过网络传输到服务器 HTTP请求通常由浏览器、Postman、curl或其他HTTP客户端发起客户端的HTTP请求通过网络通常是TCP/IP协议传输到服务器这个请求首先会到达Spring Boot应用的端口 2、服务器接收请求 服务器上的网络堆栈处理传入的TCP/IP包并将其传递给服务器软件。在Spring Boot应用中嵌入式的Tomcat、Jetty或Undertow服务器负责监听HTTP端口并接收请求。 也就是说到达springboot的程序之后首先是由tomcat接收并处理请求的一般这个tomcat是springboot内置的。 3、 Servlet容器tomcat处理请求 嵌入式的Servlet容器如Tomcat接收到HTTP请求后会将请求解析成HttpServletRequest对象。这个对象封装了请求行、请求头和请求体等信息。这个过程是在Tomcat的内部实现的遵循Servlet规范不涉及到Spring Boot的具体代码。 4、查找对应的Servlet然后DispatcherServlet处理请求 Tomcat Servlet容器会根据HttpServletRequest对象的信息例如URL、HTTP方法类型等去寻找已经注册到容器中的对应的Servlet找到对应的DispatcherServlet后Tomcat将把HttpServletRequest对象传递给它。DispatcherServlet接收到HttpServletRequest后将会根据其中的URL信息去寻找在Spring应用程序中注册的对应的Controller和处理的方法。 5、Controller处理请求 找到对应的Controller和方法后DispatcherServlet将调用这个方法并传递HttpServletRequest中的信息。到达controller接口之后进入controller中自己的处理逻辑然后最终生成返回结果。
视图解析如果控制器返回的是视图名称Spring会使用ViewResolver来解析视图并生成HTML内容。序列化数据如果控制器返回的是对象如JSONSpring会使用HttpMessageConverter将对象序列化为JSON或XML格式。 6、返回响应给客户端 DispatcherServlet生成HttpServletResponse对象包含响应的状态码、头部和体。Servlet容器如Tomcat将HttpServletResponse对象转换为原始的HTTP响应并通过网络传输回客户端。 7、客户端接收响应 客户端收到HTTP响应解析响应行、响应头和响应体并根据状态码和内容采取相应的动作。例如
浏览器渲染HTML内容或显示JSON数据。API客户端解析JSON数据并进一步处理。 二、关于tomcat与servlet Spring Boot处理HTTP请求的整个过程。在这个过程中Spring Boot的自动配置让开发者不需要关心底层的处理细节可以专注于编写业务代码。 而tomcat主要就是负责处理http请求的。Spring Boot默认使用内嵌的Tomcat服务器。这意味着Spring Boot应用启动时它会自动启动一个Tomcat实例并且该实例会根据Spring Boot的配置文件来决定监听哪个端口。 Tomcat作为Servlet容器负责管理所有部署在它上面的应用及其Servlet对象。而servlet,在每个Spring Boot应用中(也就是每个服务中)通常会有一个DispatcherServlet对象它是负责处理所有HTTP请求的核心组件。每个Spring Boot应用相当于一个独立的服务运行在Tomcat上。也就是说每一个springboot服务对应一个servlet 对象这个servlet对象由tomcat统一管理。每个应用的DispatcherServlet是独立的处理与该应用相关的所有HTTP请求。 所以总结一下
一个Spring Boot服务对应一个Servlet对象即DispatcherServlet。服务器Tomcat上可以运行多个Spring Boot服务因此会有多个DispatcherServlet对象。Tomcat负责管理这些Servlet对象包括它们的创建、初始化、请求处理、和销毁并确保请求被正确路由到相应的Servlet对象。 这里面只简答介绍一下对应关系详细了解可以再自行查询。 所以流程就是 http请求 ---- tomcat --- 对应servlet类 ---- 再到对应接口 三、springboot对应http请求映射 (Request Mapping) 前面简单说了 http 对应的方法类型常用的有 GET、POST、PUT、DELETE 等方法这些方法在springboot中也帮我们定义好了对应的注解来映射这些方法。
GetMapping用于处理 HTTP GET 请求。PostMapping用于处理 HTTP POST 请求。PutMapping用于处理 HTTP PUT 请求。DeleteMapping用于处理 HTTP DELETE 请求。
RestController
RequestMapping(/api)
public class MyController {GetMapping(/hello)public String hello() {return Hello, World!;}
}上面的代码中指定请求路径为 /api/hello指定请求方法为 GET。 还有一个常用注解是RequestMapping 注解这个注解 value 属性来指定请求路径使用 method 属性来指定请求方法例如
RestController
RequestMapping(/api)
public class MyController {RequestMapping(value /hello, method RequestMethod.GET)public String hello() {return Hello, World!;}
} 关于这些注解的详细使用也不再多说比较简单会用即可详细可再自行搜索。