HTTP报文详解
客户端与服务端进行交互的信息为报文。客户端为请求报文,服务端为响应报文。我们先用Wireshark抓一个博客看看。
报文层次结构
GET /article/12 HTTP/1.1
Host: www.xxx.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 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;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: SESSION=so9nlsvenminor5abs65sh9dsa
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 17 May 2020 17:04:29 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: blade-2.0.6-BETA
Content-Encoding: gzip
1、请求报文
请求报文
请求报文通常由三部分组成:
起始行:描述请求或者响应的基本信息
头部字段集合:key-value形式说明报文
消息正文:实际传输诸如图片等信息。具体如下图试试
请求方法:一共有八种方法选择,如下图所示。采用不同的方法获取不同的资源:
HTTP请求方法详解
说一下非常常见的几种请求方法:
GET:从服务器中取资源。可以请求图片,视频等
HEAD:和GET类似,但是从服务器请求的资源不会返回请求的实体数据,只会返回响应头
POST/PUT:对应于GET,向服务器发送数据
2、URI统一资源标识符(Uniform Resource Identifier),严格来说不等于网址,它包含URL和URN,可是URL太出名了以致于URL="网址"。无论开发,测试运维配置都离不开URI,所以好好掌握。网络层的IP主要目的是解决路由和寻址。现在的IP地址按照"."分割,总共2的32次方大约42亿。对于计算机来说比较方便,但是对于人类来说还是不容易记忆,此时出现DNS了,他把IP地址映射为我们平时常见的"redis.org",按照"."分割域名,从左到右级别越高,最右边为"顶级域名"。如下图所示: