Http 协议介绍
超文本传输协议(Hypertext Transfer Protocol, HTTP)是一个简单的请求-响应协议。运行在TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息头以ASCII 形式给出,而消息内容则有一个类似于MIME 的格式。
Http 是应用层协议,基于B/S 架构进行通信的。
HTTP 的服务器端实现程序有httpd 、nginx 等,其客户端的实现程序主要是Web服务器, 客户端的命令行工具还有 elink,curl。 Web 服务是基于TCP的。
工作原理
基于客户、服务器模式,且面向连接的。
(1)客户与服务器建立连接。
(2)客户向服务器提出请求。
(3) 服务器接受请求,并根据请求返回响应的文件作为应答。
(4) 客户与服务器关闭连接。
客户与服务器之间的HTTP连接是一种一次性连接。它限制每次连接只处理一个请求。当服务器返回本次请求的应答后便关闭连接,下次请求在重新建立连接。
Http 是一种无状态协议。即服务器不保留与客户交易时的任何状态。
各种请求参数
get 获取数据
post 保存数据
put 更新数据
delete 删除数据
示例
实体类信息
package com.example.business.entity;
import lombok.Getter;
import lombok.Setter;
// 加入Getter Setter 可以不用写 get set 方法
@Getter
@Setter
// MapEntity
public class MapEntity {
// 定义变量
// 经度 维度 水平 模拟
private String lng;
private String lat;
private String level;
private String simulateTime;
}
控制层代码
/**
* 初始化列表信息控制器
*/
@RestController
@RequestMapping("/map")
public class MapController {
@Autowired
private RedisUtils redisUtils;
@GetMapping
// 获得地图
public Ret getMap() {
Map map = new HashMap();
map.put("mapLevel", redisUtils.get("map_level"));
Map centralPoint = (Map) redisUtils.get("map_centralPoint");
map.put("mapCentralPoint", centralPoint);
map.put("simulateTime", redisUtils.get("simulate_time"));
return Ret.ok().setData(map);
}
@PostMapping
// 设置地图
public Ret setMap(MapEntity mapEntity) {
redisUtils.set("map_level", mapEntity.getLevel());
Map map = new HashMap();
map.put("lng", mapEntity.getLng());
map.put("lat", mapEntity.getLat());
redisUtils.set("map_centralPoint", map);
redisUtils.set("simulate_time", mapEntity.getSimulateTime());
return Ret.ok();
}
}
请求方式
get 请求方式:
http:localhost:8080/map
post 请求
http:localhost:8080/map
请求体为:
{
"lng": "135",
"lat":"46",
"level": "high",
"simulateTime": "simulate"
}