HTTP的场景实践 | 青训营

88 阅读3分钟

HTTP的场景实践

HTTP含义:

HTTP中文又称超文本传输协议,是Hyper Text Transfer Protocol的缩写,它是一个 运行在TCP之上的简单的请求-响应协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

HTTP的应用场景

HTTP诞生之初主要是应用于WEB端内容获取,那时候内容还不像现在这样丰富,排版也没那么精美,用户交互的场景几乎没有。对于这种简单的获取网页内容的场景,HTTP表现得还算不错。但随着互联网的发展和WEB2.0的诞生,更多的内容开始被展示(更多的图片文件),排版变得更精美(更多的CSS),更复杂的交互也被引入(更多的JS)。用户打开一个网站首页所加载的数据总量和请求的个数也在不断增加。

  1. Web开发:HTTP协议是Web应用程序开发中最重要的基础通信协议。
  2. 互联网通信:HTTP协议是互联网通信的基础,通过HTTP协议可以实现不同计算机之间的数据传输。
  3. 数据交换:HTTP协议也被广泛应用于数据交换,例如RESTful API。

HTTP协议的响应消息格式

HTTP协议的响应消息由三个部分组成:状态行、响应头和响应体。

状态行:状态行由三个部分组成,分别是HTTP协议版本、状态码和状态描述。

响应头:响应头与请求头类似,包含了服务器向客户端发送的一些附加信息,例如允许的MIME类型、服务器支持的语言类型等。

响应体:响应体是HTTP服务器向客户端返回的实际数据,例如HTML页面、图片等。

HTTP场景实践

访问www.baidu.com/,对静态资源进行分析

百度截图.png

百度2.png

百度3.png 百度首页的资源在刷新后实际没有发送任何请求,因为 Cache-Control 定义的缓存时间段还没到期。在Chrome中即使没发送请求,但只要从本地的缓存中取,都会在Network面板显示一条状态为200且注明“from cache”的伪请求,其Response内容只是上一次回包留下的数据。 在Chrome中如果点击“刷新”按钮,Chrome会强制给所有资源加上“Cache-Control: max-age=0”的请求首部并向服务器发送验证请求的,而在图中,我们的确点击了“刷新”按钮,却不见浏览器发去新请求(并返回304)。

http几种请求方式的使用

1.GET

 //比如,使用id来查询演员信息
@GetMapping("/findActorMessage")
public Result findActorMessage(Integer actorId) {
return actorService.findActorMessage(actorId);
}

2.POST

//用于向数据库添加用户操作
@PostMapping("/addUser")
public ResponseResult addUser(User user) {
    User user1 = userService.findUserByAccount(user.getAccount());
    if (user1 == null) {
        userService.addUser(user);
        return ResponseResult.success("添加成功");
    } else {
        return ResponseResult.error("用户已存在");
    }
}

3.PUT

@ApiOperation(value = "用户修改邮箱")
@PutMapping("/findAllUser")
public ResponseResult updateEmail(String email, int userId) {
    return userService.updateEmail(email, userId);
}

4.DELETE

@ApiOperation(value = "根据id删除用户")
@DeleteMapping("/deleteById")
public ResponseResult deleteById(int userId) {
    User user = userService.findUserById(userId);
    int i = userService.deleteUserById(userId);
    if (i > 0) {
        return ResponseResult.success("删除成功", user);
    } else {
        return ResponseResult.error("抱歉未找到");
    }
}

5. HEAD

  1. OPTIONS