Web基础—HTTP协议
一、请求数据
1、HTTP协议中请求数据类型
请求行(请求数据第一行)
请求头(键值对格式出现:key-value)
请求体(post请求时)
请求方式分为get请求,post请求:1、GET没有请求体,在浏览器中请求大小有限制2、POST请求大小无限制
2、请求数据的获取
基于HttpServletResponse response封装。
Tomcat服务器对原始协议数据进行解析,将http请求数据解析封装成HttpServletRequest对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| package com.example.springbootquickstart;
import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
@RestController public class RequestContoller { @RequestMapping("/request") public String Request(HttpServletRequest request){
String method = request.getMethod(); System.out.println(method); String url = request.getRequestURL().toString(); System.out.println(url); String uri = request.getRequestURI(); System.out.println(uri); String protocol = request.getProtocol(); System.out.println(protocol); String queryString = request.getQueryString(); System.out.println(queryString); String header = request.getHeader("User-Agent"); System.out.println(header);
} }
|
综上,我们可以通过(HttpServletRequest类型)request对象获取请求信息。
二、响应数据
1、HTTP协议中响应数据类型
响应行(请求数据第一行)
响应头(键值对格式出现:key-value)
响应体(服务端响应给前端的具体数据部分)
2、响应行的状态码分类
1**:响应中,临时状态码
2**:响应成功
3**:重定向
4**:客户端错误
5**:服务端错误
访问浏览器时通过F12键->进入开发者工具->选择网络即可查看到响应码↓↓↓↓↓↓↓
3、响应数据的设置
方式一:基于HttpServletResponse 封装
1 2 3 4 5 6 7 8 9 10 11 12
| @RestController public class ResponseController { @RequestMapping("/response1") public void Response(HttpServletResponse response) { response.setStatus(HttpServletResponse.SC_OK); response.addHeader("name","zhangsan"); response.setContentType("<h1>HelloWorld!</h1>"); }
|
方式二:
基于Spring中提供的ResponseEntity类
1 2 3 4 5
| @RequestMapping("/response2") public ResponseEntity<String> Response2() { return ResponseEntity.status(401).header("name","张三").body("<h1>HelloWorld!</h1>"); }
|
4、注意
响应码与响应头无特殊要求通常不设定。服务器会自动设置响应码与响应头