HTTP请求
当我们客户端发生一个HTTP请求到服务器的时候,服务器就会处理发送过去的请求,然后返回一个HTTP响应
HTTP请求分为4个部分:
- 请求行
- 请求头
- 空行
- 请求体
HTTP请求又分GET请求和POST
GET请求的传输数据是放在URL后面,POST请求数据封装在请求体里面
图如下:
GET请求代码如下:
GET /index.html?a=1&b=2 HTTP/1.1
Host: localhost.charlesproxy.com:3000
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/74.0.3729.131 Safari/537.36
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,
application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: _ga=GA1.2.448607888.1557887884; _gid=GA1.2.2022442462.1557887884
Connection: keep-alive
- HOST :服务器的域名。
- User-Agent :浏览器的浏览器身份标识字符串。
- Accept:能够接受的回应内容类型( Content-Types )。
- Accept-Encoding:能够接受的编码方式列表。
- Accept-Language:能够接受的回应内容的自然语言列表。
- Cookie:之前由服务器通过 Set- Cookie 发送的一个超文本传输协议 Cookie。
- Connection:该浏览器想要优先使用的连接类型。
POST请求代码如下:
POST /users/login HTTP/1.1
Host: localhost.charlesproxy.com:3000
Content-Length: 43
Accept: application/json, text/plain, */*
Origin: http://localhost.charlesproxy.com:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
Content-Type: application/json;charset=UTF-8
Referer: http://localhost.charlesproxy.com:3000/index.html
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: _ga=GA1.2.448607888.1557887884; _gid=GA1.2.2022442462.1557887884
Connection: keep-alive
{"username":"zhangsan","password":"111111"}
HTTP响应
当服务器处理完客户端发送过来的请求后,就会返回一个HTTP响应
HTTP响应分为4个部分:
- 响应行
- 响应头
- 空行
- 响应体
图如下:
HTTP/1.1 200 OK //响应行
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8
Server:Apache Tomcat/4.0-b1(HTTP/1.1Connector)
Conection:close
<html>
<head></head>
<body>
<!--body goes here-->
</body>
</html>
在上面的例子中,第一行是响应行,由http协议版本,状态码,状态描述组成。
第二行是响应头,也是一对一对的键值对。
接下来是空行,之后响应体,响应体里面装的就是具体浏览器要渲染的内容。