- TCP/IP 协议族:计算机和网络科要相互通信,就要基于相同的规则(protocol)。TCP/IP是所有协议族的总称
- TCP/IP分层:应用层,传输层,网络层,数据链路层
- 流程图:
- 在TCP/IP协议族 中 与HTTP密切相关的协议:IP,TCP 和 DNS
-
- 负责传输的IP协议(不是IP地址,位于网络层) IP协议保证把数据包要传到对方那里,IP地址和MAC地址是两个重要条件。ARP协议,在通过路由器中转时,需要MAC地址搜索下一个目标,通过IP地址反查出MAC地址
- 确保可靠性的TCP协议(传输层):TCP协议为了更容易传输分割大数据,而且能确认数据是否最后传给了对方。TCP为了确保数据传送到,用了三次握手策略。
- 负责域名解析的DNS服务(应用层):提供域名到IP地址的解析服务
- 第四点总流程图
- URI和URL
- URL
URL(Uniform Resource Locator) ,统一资源定位符,能够对因特网的资源进行定位。
URL一般有四部分组成: <协议>://<主机>:<端口>/<路径>
现在最常用的<协议>为http协议。
<主机>是指主机在因特网上的域名。
http协议的默认<端口>为80(可以省略)。
<路径>是指要活的的文件的路径。
- URI: 统一资源标识符 如http ftp file URL是URI的子集
- 绝对URI格式:
————————————————————————————————————————
HTTP协议介绍:
- HTTP协议用于客户端和服务端之间的通信
- HTTP是不保存状态的协议,它不会记得刚才发送或响应的东西
- HTTP方法
- GET :获取某个资源
- POST :传输实体主体(告诉服务器某个信息)
- PUT :传输文件在请求报文中就要包涵要传输的文件主体
- HEAD :获取文报首部
- DELETE :删除文件,按照请求URI删除
- OPTIONS :询问支持的方法
- TRACE :追踪路径
- CONNECT:要求使用隧道协议连接代理
- LINK,UNLINK :建立和断开资源之间的联系
————————————————————————————————————————————————————
HTTP报文:
- HTTP报文包括发送的请求报文和获得的响应报文,报文大致分为报文首部和报文主体
- 报文图解:
- 编码提升传输效率
- 通常,报文主体等于实体主体,只有当传输进行编码操作时,实体主体内容发生变化.
- 压缩传输的内容编码:将实体压缩变小后发送,常用的内容编码有:gzip,compress
- 分块传输编码
- 发送多种数据的多部分对象集合,例如发送邮件(含有,文本视频图片等)
- 获取范围请求:以前下载中断只能从新开始,现在可以请求从某个范围重新开始,首字段是Range,单位是bytes
- 内容协商返回最合适内容:比如Google有中文版和英文版,根据浏览器设置访问URI会默认访问某个版本
- 内容协商有三种
——————————————————————————————————————————————————
请求返回的状态码:
- 200 OK 已正常处理
- 204 No Content 请求处理成功但是没有资源返回
- 206 Partial Content 表示用户进行了范围请求,响应报文中包含范围的实体内容
- 301 请求的资源已永久重定向,分配了新的URI,应该保存
- 302 请求的资源已临时重定向,这次访问请用新URI
- 303 请求对应资源存在另一个URI,应使用GET方法获取
- 304 资源找到,但是未符合附加条件
- 307 类似302,不会从POST变为GET
- 400 存在语法错误
- 401 表示请求需要通过HTTP认证
- 403 拒绝访问
- 404 没有对应资源
- 500 服务器在执行请求时发生错误
- 503 服务器正在超负荷或者停机维护
————————————————————————————————————————————
与HTTP协作的WEB服务器:
- 用单台虚拟主机实现多个域名:如果在相同IP地址(服务器)上部署了多个域名,在访问的时候就必须在Host首部内完整指定主机名或者域名的URI
- 通信数据转发程序:代理,网关,隧道
网关是服务器,可以提供非HTTP服务
隧道是程序,连接客户端和服务器,保证连接安全,使用SSL。
- 代理
- 网关
- 隧道
- 保存资源的缓存:缓存是指在代理服务器或者客户端本地内保存的资源副本,利用缓存可以减少对源服务器的访问,因此节省了流量和时间
- 服务器缓存
-
- 客户端的缓存