HTTP请求

1
2
3
4
5
POST /user/info?new_user=true HTTP/1.1
Host: www.example.com
User-Agent: curl/7.77.0
Accept: */*
{"username":"62bit","email":"123456@qq.com"}

请求行

POST /user/info?new_user=true HTTP/1.1

PPST:方法类型

/user/info?new_user=true:资源路径,问号❓后面是查询参数,不同参数之间用&符号分隔

HTTP/1.1:协议版本

请求头

Host: www.example.com:主机域名

User-Agent: curl/7.77.0:将客户端的信息告知服务器,客户端类型、版本

Accept: */*:表示客户端想要接受什么类型的响应数据,以下是一些常见类型,接受多个类型时用逗号分隔

  • 接受HTML:text/html
  • 接受JSON:application/json
  • 接受HTML和JSON:text/html,application/json
  • 接受任意类型:*/*

请求体

{"username":"62bit","email":"123456@qq.com"}:客户端传给服务器的其它任意数据

GET方法的请求体一般是空的

HTTP响应

1
2
3
4
5
6
7
HTTP/1.1 200 OK
Date: Fri,27 Jan 2023 02:10:48 GMT
Content-Type: text/html;charset=utf-8
<!DOCTYPE html>
<head><title>Home</title></head>
<body><h1>62bit</h1><p>Hello!</p></body>
</html>

状态行

HTTP/1.1 200 OK

HTTP/1.1:协议版本

200:状态码

OK:状态消息

以下是常见的状态码和状态消息:

pP5wmDI.png

2开头的表示成功,请求已经完成处理

3开头的表示重定向,需要进一步操作

4开头的表示客户端错误,比如请求里面有错误或请求的资源无效

5开头的表示服务器错误,比如出现问题或正在维护

响应头

返回一些告知客户端的信息

Date: Fri,27 Jan 2023 02:10:48 GMT:生成响应的日期和时间

Content-Type: text/html;charset=utf-8:返回内容的类型及编码格式

响应体

服务器返回给客户端的内容

1
2
3
4
<!DOCTYPE html>
<head><title>Home</title></head>
<body><h1>62bit</h1><p>Hello!</p></body>
</html>