JaveWeb后端-Web基础-SpringBoot Web、HTTP协议

Spring

官网:spring.io

SpringBootWeb使用步骤

1、创建SpringBoot工程,勾选web开发依赖


2、定义请求处理类~~Controller,定义请求处理方式

java 复制代码
@RestController//表示当前类是一个请求处理类
public class HelloController {
    @RequestMapping("/hello")
    public String hello(String name){
        System.out.println("name:"+name);
        return "hello:"+name+"~";
    }
}

3、运行启动类,测试

HTTP协议

Hyper Text Transfer Protocol

特点:

1、基于TCP协议:面向连接,安全

2、基于请求-响应模型:一次请求对应一次响应

3、HTTP是无状态的连接:对事务处理没有记忆能力,每次请求-响应都是独立的

缺点:多次请求间不能共享数据

优点:速度快

HTTP-请求协议

请求数据格式

红色:请求行

黄色:请求头

常见请求头

请求体:POST请求,存放请求参数
get方式和post方式

请求数据获取

java 复制代码
@RestController
public class RequestController {
    @RequestMapping("/request")
    public String request(HttpServletRequest request){
        //1、获取请求方式
        String method = request.getMethod();
        System.out.println("请求方式:"+method);
        //2、获取请求url地址
        String url = request.getRequestURL().toString();//http://localhost:8080/request
        System.out.println("请求url地址:"+url);
        String uri = request.getRequestURI();
        System.out.println("请求uri地址:"+uri);
        //3、获取请求协议
        String protocol = request.getProtocol();//HTTP/1.1
        System.out.println("请求协议:"+protocol);
        //4、获取请求参数-name,age
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        System.out.println("请求参数-name:"+name);
        System.out.println("请求参数-age:"+age);
        //5、获取请求头-Accept
        String header = request.getHeader("Accept");
        System.out.println("请求头-Accept:"+header);

        return "OK";
    }

}

HTTP-响应协议

响应数据格式

响应数据:响应行,响应头,响应体

状态码图鉴

java 复制代码
@RestController
public class ResponseController {
    /**
     * 方式一:使用HttpServletResponse设置响应数据
     * @param response
     * @throws IOException
     */
    @RequestMapping("/response")
    public void response(HttpServletResponse  response) throws IOException {
        //1、设置响应状态码
        response.setStatus(401);
        //2、设置响应头
        response.setHeader("name","it");
        //3、设置响应体
        response.getWriter().write("<h1>hello response</h1>");
    }
    /**
     * 方式二:使用ResponseEntity设置响应数据
     */

    @RequestMapping("/response2")
    public ResponseEntity<String> response2(){
        return ResponseEntity.status(401)//响应状态码
                .header("name","javaweb-ai")//响应头
                .body("<h1>hello response2</h1>");//响应体
    }

}
相关推荐
寻星探路6 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
王达舒19946 小时前
HTTP vs HTTPS: 终极解析,保护你的数据究竟有多重要?
网络协议·http·https
朱皮皮呀6 小时前
HTTPS的工作过程
网络协议·http·https
Binary-Jeff6 小时前
一文读懂 HTTPS 协议及其工作流程
网络协议·web安全·http·https
崔庆才丨静觅8 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60619 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了9 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅9 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅9 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
猫头虎9 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven