一.Http是什么?
中文名称--超文本传输协议,是TCP/IP协议族的最顶层-应用层。
二.Http请求格式
URL格式分为三部分:协议类型://服务器地址(和端口号)/路径(Path)
三.Http的报文格式
1.请求:
-
请求报文---->分为 : 请求行,Header,Body三部分。
-
请求行中包括请求的方式(GET,POST等),请求的路径(主机地址之后的部分),Http的版本号
-
请求头包括一些上传信息的属性,是固定名称的键值对形式。
-
请求体是上传的内容,一般配合请求头Content-Type为 x-www-form-urlencoded的形式使用(表单格式),GET请求没有请求体。
2.响应:
-
响应报文---->分为:响应行,Header,Body三部分。
-
响应行中包括Http版本号,响应状态码和响应状态信息三部分。
-
响应体根据服务器返回的数据格式为主,一般响应体都是返回JSON格式。
四.请求方法:列举常见的5种
GET
-
用于直接从服务器上获取资源。
-
对服务器数据不进行修改,满足幂等性(反复调用多次时会得到相同的结果。例如执行十次相同的GET请求相当于从服务器获取十次数据,但并不会对服务器数据造成修改)。
-
不发送Body请求体。
GET /users/1 HTTP/1.1
Host: api.github.com
POST
-
用于增加或修改服务器上的资源。
-
发送给服务器的内容写在Body中。
-
不满足幂等性(增加资源的时候执行一次和执行十次不同,执行一次增加一个,执行十次增加十个)。
POST /users HTTP/1.1
Host: api.github.com
Content-Type: application/x-www-form-urlencoded (Content-Type为 “application/x-www-form-urlencoded”时,才会读取Body中的内容)
Content-Length: 13
name=lvzishen&gender=male
PUT
-
用于修改服务器上的资源(和POST请求功能有些重复了,POST既能新增又能修改资源,PUT只能修改资源)。
-
发送给服务器的内容写在Body中。
-
满足幂等性。
PUT /users HTTP/1.1
Host: api.github.com
Content-Type: application/x-www-form-urlencoded (Content-Type为 “application/x-www-form-urlencoded”时,才会读取Body中的内容)
Content-Length: 13
name=lvzishen&gender=male