HTTP方法
| HTTP方法 | 描述 |
|---|---|
| GET | 服务器向客户端发送资源 |
| PUT | 将客户端数据存储在服务器资源中 |
| DELETE | 从服务器中删除命名资源 |
| POST | 将客户端数据发送到一个服务器网关应该程序 |
| HEAD | 仅发送命名资源响应中的HTTP首部 |
URL的语法
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
| 组件 | 描述 | 默认值 |
|---|---|---|
| 方案 | 访问服务器以获取资源时要使用哪种协议 | 无 |
| 用户 | 某些方案访问资源时需要的用户名 | 匿名 |
| 密码 | 用户名后面可能要包含的密码,中间由冒号分隔 | <email 地址> |
| 主机 | 资源宿主服务器的主机名或点分IP地址 | 无 |
| 端口 | 资源宿主服务器正在监听的端口号,很多方案都有默认端口号(HTTP默认的端口号是80) | 每个方案特有 |
| 路径 | 服务器上资源的本地名 | 无 |
| 参数 | 某些方案用这个组件来指定输入参数。参数为名/值对。URL中可以包含多个参数字段,它们互相之间以及与路径的其余部分之间用分号(;)分隔 | 无 |
| 查询 | 某些方案用这个组件传递参数以激活应用程序 | 无 |
| 片段 | 通过字符“#”将其与URL的其余部分分隔开来 | 无 |
# 方案(使用什么协议)
# 方案名与大小写无关。
`http://baidu.com` = `HTTP://baidu.com`
# 主机与端口
`http://baidu.com:80`
`http://111.13.101.208:80`
# 用户名和密码
`http://joe:joespasswd@www.joes-hardware.com/sales_info.txt`
# 路径
# 通常很像一个分级的文件系统路径
# 参数
`http://example.com/hammers;sale=false/index.html;graphics=true`
# 查询字符串
`http://anna.52inlove.com?page=1&name=example`
# 片段
`http://anna.52inlove.com/index#foot`

请求报文格式
<method> <request-URL> <version>
<headers>
<entity-body>
GET /api/test/detail?page=2 HTTP/1.1
Host: dev.xxx.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json, text/plain, */*
响应报文格式
<version> <status> <reason-phrase>
<headers>
<entity-body>
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 17 May 2019 02:47:20 GMT
Content-Type: application/json
响应码
