HTTP协议
Posted diyigechengxu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议相关的知识,希望对你有一定的参考价值。
应用层: ftp和dns服务等,http协议。面向用户,给用户提供应用服务通信
传输层:tcp和udp协议
网络层:ip寻址,icmp,igmp等
链路层:物理链接,硬件设备
dns服务,解析域名地址成ip地址
tcp协议,字节流服务,切割数据为小的报文段。采用三次握手可靠服务,使用SYN和ack标志,确保数据可达性。
ip协议,又叫网际协议,确保传输目的地准确。通过arp协议解析ip地址为对端的mac地址,设备的mac地址是唯一的。每台设备都只知道邻近设备地址,无法确认数据的最终流向
uri,用某个协议(http,ftp)表示的资源定位标识符
url,表示资源所处位置,是uri的子集
http是无状态协议,不对之前对请求和响应进行管理
keep-alive 持久化链接,默认的http请求和相应就代表一个tcp的周期结束,需要反复握手。持久化连接,除非有一端主动断开连接,否则tcp在多次请求期间,只会进行一次握手过程
管线化 同时发送多个请求,以及接收请求等
编码提升传输效率,对传输内容进行压缩
gzip compress
传输大块数据时,采用分割传输技术
transfer-encoding chunked
range:获取部分数据,返回206的部分报文,或者返回200的全部报文
accept 用户接收的数据类型
accept-charset 用户接收的数据字符集
accept-encoding 用户接收数据使用的编码 gzip compress
accept-language 用户接收的数据语言
Content-Type 报文的数据类型
cache-control: no-cache no-store 控制资源的缓存行为
connection: keep-alive、close 长连接 \upgrade 不进行代理转发,查看是否有新协议版本
Authorization: 用户的认证信息
If-Match: 字段值和ETag值匹配。服务器接受请求
If-None-Match: 字段值和ETag值不匹配。服务器接受请求
If-Modified-since: 返回指定时间点后更新的资源,如果在指定日期之前更新,则不接受请求
If-UnModified-since: 返回指定时间点后未进行更新的资源,如果在指定日期之前更新,则接受请求
If-Range: 指定的ETag值或者指定的日期和资源的ETag值或日期一致,则接收Range范围请求,否则返回全部资源
User-Agent: 用户信息代理信息
Accept-Ranges: 可处理的Range请求,返回对应的bytes,如果Range不可处理,返回none
ETag: 告诉用户资源的最新标识
Location: 返回3xx时,告诉用户的一个重定向资源
Server: 返回服务器的信息
Allow: 资源支持的请求方法
Content-Encoding: 资源的编码方式gzip compress
Content-Language: 资源的语言
Content-Length: 返回数据的大小
Content-MD5: 返回数据md5后的值
Content-Range: bytes 5001-10000/10000 返回数据的范围和数据大小
Content-Type 报文的数据类型
Expires: 资源的有效期
Last-Modified: 资源最近修改时间
Set-Cookie: 缓存数据
Cookie: 请求带的缓存数据
Upgrade: websocket 使用websocket协议进行通信,配合使用connection: Upgrade
status code
200 ok
204 当前请求成功。但内容一致,不进行更新
206 range请求,返回Content-range指定范围
301 302 303 重定向
304 if-modified/if-none-match/if-range/if-unmodified-since请求头,返回改请求头条件不满足
400 错误的请求,request无法解析
401 认证不通过,需要重新授权
403 禁止访问资源
404 资源没找到
501 服务器错误
503 服务器停机维护
https:
采用非对称加密和对称加密两种方式。
服务器去证书机构请求颁发证书,并上传服务器端的公钥,证书机构用自身机构的私钥对服务器端的公钥进行签名放到证书中。客户端收到证书后,使用系统中存有的公钥对证书上的服务器端公钥进行签名验证,和证书中的签名一致,说明验证通过。浏览器中经常会植入常用证书机关的公钥。在拿到服务器端端公钥后,生成一个随机数,可以看成以后通信的对称加密的密钥,发给服务器端,服务器端用自身的私钥进行解密,这样双方就有了对称加密的密钥。
以上是关于HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 之 HTTP协议(HTTP协议概述HTTP消息缓存控制相关头部Cookie相关头部)