http协议从入门到再入门
第一章 web及网络基础
|
状态码一共有六十余种,但是常用的大概有14种。
用于HTTP协议交互的信息被称为HTTP报文。报文分为报文首部和报文主体(不是必须的)两部分,之间用空行隔开。如下图所示:上图中请求行和相应行内容很简单,不是研究重点,四种首部字段(通用首部字段、请求首部字段、响应首部字段、实体首部字段)才是重点所在。
请求/响应行
请求行: 包含用于请求的方法,请求URI 和 HTTP版本,如`GET / HTTP/1.1`
响应行: 包含表明响应结果的状态码,原因短语和HTTP版本,如`HTTP/1.1 200 OK`
通用首部字段
通用首部字段指的是请求和响应都会使用到的首部字段
1 Cache-Control: 缓存控制
控制台查看(chrome中),并不位于通用首部中。
在客户端和元服务器之间存在一个缓存服务器。
客户端常用的值有:
`Cache-Control:max-age=0` `Cache-Control:no-cache`表示客户端不会接受缓存过的响应`注意此处并非不缓存,而是不缓存过期的资源,缓存会向源服务器确认有效期`,必须把客户端请求转发给源服务器。
2 Connection
Connection: Keep-alive
保存长连接。当服务器想明确断开连接时,则指定Connection首部字段的值为Close。
3 Date
报文创建的日期和时间。(chrome也没。)
请求首部字段
1 Accept
通知服务器,客户端能够处理的媒体类型
文本文件 text/html,text/css,text/plain
图片文件 image/jpeg,image/gif,image/png
视频文件 video/mpeg
二进制文件 application/ocet-stream,application/zip
后面可能会追加个参数 q=0.8 表示权重(不指定默认为1)
2 Accept-Encoding
告知服务器 客户端支持的内容编码及优先级
3 Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
告知服务器 客户端能处理的自然语言集以及相对优先级
4 Authorization
Authorization: Basic dsdjglWDWQD23sssWQ==
高值服务器 客户端的认证信息(通常出现在401返回码之后的请求中)
5 Host
这是HTTP/1.1唯一要求的必须出现在请求首部中的字段
如果相同的IP地址下部署运行着多个域名,那么服务器会无法理解究竟是哪个域名对应的请求,
因此客户端需使用Host来明确指出请求的主机名。若服务器为设定主机名,则直接发送个空值即可。
6 If-Match
形如If-xxx格式的请求,都成为条件请求,服务器只在条件为真时才会执行请求。
服务器会对比If-Match的字段值和请求的资源在服务器中的ETag值,若一致,才返回(好奇怪的规则)
7 If-Modified-Since
如:要请求的资源在昨天三点以后被修改了,那么就再给我一次,否则不用再给我一次该资源。
8 Referer(正确的写法应该是Referrer)
告知服务器请求的uri
6 Cookie
告知服务器,客户端的cookie有哪些
响应首部字段
1 Accept-Ranges
Accept-Ranges: bytes 能处理范围请求
Accept-Ranges:none 不能处理范围请求
找到的例子是在图片请求中
2 Age
服务器多久前创建了响应
查看到的几个都是`Age:1`
3 ETag
告知客户端该资源的标识。服务器会为每份资源分配对应的ETag,一旦资源改变,ETag也改变。
4 Location
出现在返回码为30x的响应中,告诉客户端去哪儿。
5 Server
服务器安装的HTTP应用程序信息
6 Set-Cookie
告知客户端种下cookie
实体首部字段
Nothing
HTTPS
HTTP+加密+认证+完整性保护=HTTPS
HTTPS并非一种新协议,只是HTTP通信接口部分采用SSL、TLS协议代替而已。HTTPS通信步骤远比HTTP麻烦,且需要购买证书
HTTPS存在的问题:
通信速度变慢,网络负载变慢2-100倍
加密和解密运算导致更多地消耗服务器和客户端的硬件资源,占用过多服务器资源,意味着服务器处理并发能力被削弱
收费
因此,目前的状况是:非敏感信息使用HTTP通信,敏感数据采用HTTPS通信
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!