HTTP协议相关知识总结(一)
/*
参考书籍:《图解HTTP》 【日】 上野宣
写在前面:以前看TCP/IP详解,分分钟想睡觉,这本书趣味十足,以后有机会可以读一读,我是通信工程毕业的,已经有了一定的网络基础,TCP/IP协议略懂,虽然我们已经从C/S时代过渡到了B/S时代,理解协议时最好还是C/S模式,关于协议的学习,最好的方法我觉着还是对照着流程用wireshark抓报文分析。自从1997发布HTTP/1..1,除了更换了一个规范,从RFC2068到RFC2616,其余的标准一直沿用至今。。。。
ps:我才发现有道云笔记插入图片竟然不识别png格式的。。。。
*/
本文主要框架:
关键名词
HTTP(HyperText Transfer Protocol):超文本传输协议
URI (Uniform Resource Identifier) :统一资源表示符(RFC4395),http协议就是通过请求URI来定位资源。
URL (Uniform Resource Identifier) :简单说来URL就是URI的子集
相对URI格式:协议名称://域名.根域名/目录/文件名。后缀
绝对URI格式:协议名称://登陆信息/域名、端口号/带层次的文件路径/查询字符串/片段标识符
DNS(Domain Name System ) : 域名系统
HTTP协议方法
要看懂报文,报文首部的方法一定要明白,以下是对协议方法的一点总结
HTTP协议特点
无状态协议,所以需要cookie 状态管理。无状态协议固然有其优点比如可减少服务器的CPU及内存资源的消耗,不过可以在请求和响应报文中写入Cookie消息来控制客户端的状态。
HTTP报文内的HTTP消息
HTTP协议交互的消息就叫做HTTP报文,是HTTP通信中的基本单位,由8位组字节流组成
报文结构主要如下所示:
HTTP 的一些特定功能:
- 压缩传输的内容编码
- 分割传送的分块传输编码
- 发送多种数据的多部门对象集合
- 获取部分内容的范围请求
- 内容协商返回最合适的内容
返回结果的HTTP状态码
与HTTP协作的WEB服务器
http/1.1规范允许一台http服务器搭建多个web站点。物理主机加虚拟主机
http通信时,除客户端和服务器外,还有一些通信数据转发的应用程序,例如:代理,网关和隧道。
代理
在客户端和服务器扮演中间人。追加个via首部消息。有个缓存代理的特点,缓存服务器本身也是一种代理服务器(HLS协议中常用)
网关
也是一服务器,转发其它服务器的通信数据,同时处理客户端发来的请求。网关与服务器间可以提供非HTTP协议服务,更安全
隧道
隧道是在相隔很远的客户端和服务器俩者之间进行中转,并保持双方通信连接的应用程序。本身不会去解析HTTP报文
閱讀更多 何五雜談 的文章