【图解 HTTP】 读书笔记

通过 HTTP 协议访问 Web

提问: 在 Web browser 地址栏输入 URL 时, Web 页面时如何呈现的?
回答: Web 浏览器从 Web 服务器中获取服务器相关资源(resorce)等信息,其中 Web使用 HTTP(超文本传输协议) 协议作为规范,来完成客户端到服务端的整个过程,因此 Web 是建立在 HTTP 协议上通信的。
在这里插入图片描述

HTTP 制定初衷

当年 HTTP 协议的出现主要是为了解决文本传输的难题 ,协议本身非常简单,但现在 HTTP 协议已经超出 Web 这个框架的局限。

网络基础 TCP/IP

TCP/IP 是互联网相关的各类协议族的总称。

通常我们使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作,而 HTTP 属于它内部的一个子集。

TCP/IP 协议族的层次:应用层、传输层、网络层和数据链路层。层次化的优点:如果互联网只由一个协议统筹,当某个地方需要更改时,需要整个替换;分层后只需要替换掉响应的层。

TCP/IP 协议族各层的作用如下:

  • 应用层:应用层决定向用户提供给服务是通信的活动,如 FTP(文本传输协议)、DNS(域名系统)服务以及 HTTP 协议。
  • 传输层:对应用层,提供处于网络连接中的两台服务器之间的数据传输,传输层协议有 TCP(传输控制协议)、UDP(用户数据报协议)。
  • 网络层:用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方的计算机,并把数据包传送给对方。
  • 数据链路层:用来连接网络的硬件部分。

TCP/IP 通信传输过程:
发送端层与层之间传输数据时,经过一层就打上该层首部信息
接收端通过一层删除对应层的首部信息,这种数据信息包装称为封装。
在这里插入图片描述

IP、TCP 和 DNS

负责传输的 IP 协议

IP 网际协议位于网络层,其作用是把各种数据包传送给对方。而要保证确实传送到对方那儿需要满足各类条件,其中最重要的两个条件是 IP 地址和 MAC 地址。

IP地址指明了节点被分配的地址,MAC 地址是指网卡所属的固定地址。 IP 地址可与 MAC 地址配对。IP 地址可变换,但 MAC 地址基本不变。

IP 间的通信依赖于 MAC 地址,而 ARP 协议是用以解析地址的协议,可以根据通信方的 IP 地址反查出对应的 MAC 地址。

确保可靠性的 TCP 协议

TCP 位于传输层,提供可靠的字节流服务。

字节流服务是指为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。

可靠的传输服务是指能够把数据准确地传给对方。

TCP 协议为了更容易传送大数据才将数据分割,而 TCP 协议能够确认数据最终是否送达到对方。

为确保准确无误将数据传到目标处, TCP 协议采用了三次握手策略。握手过程使用了 TCP 的标志—— SYN 和 ACK。若某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。
在这里插入图片描述

负责域名解析的 DNS 服务

DNS 服务和 HTTP 协议一样位于应用层。它提供域名到 IP 地址之间的解析服务。

计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。用户通常使用主机名或域名来访问对方的计算机。与 IP 地址相比,字母配合数字的主机名更符合人类记忆习惯。

但计算机去理解主机名相对困难,因此 DNS 服务提供通过域名查找 IP 地址,或者逆向从 IP 地址反查域名的服务。
在这里插入图片描述

各种协议与 HTTP 的关系

在这里插入图片描述

URI 和 URL

URI (统一资源标识符) : 由某个协议方案表示的资源的定位标识符。协议方案是指访问资源资源是所使用的协议类型名称(如:http、ftp、file 等)

URL(统一资源定位符) : 使用 Web 浏览器等访问 Web 页面时需要输入的网页地址。

URI 格式

在这里插入图片描述

HTPP/1.1 协议结构

  • HTTP 协议用于客户端和服务器端之间的通信
    在这里插入图片描述

  • 通过请求和响应达成通信
    在这里插入图片描述

  • HTTP 是不保存状态的协议,意思是 HTTP 协议自身不具备保存之前发送过的请求或相应的功能
    在这里插入图片描述

  • HTTP 协议使用 URI 定位互联网上的资源
    在这里插入图片描述

  • 告知服务器意图的 HTTP 方法, GET:获取资源; POST:传输实体主体
    在这里插入图片描述
    在这里插入图片描述

  • Cookie 的状态管理,解决 HTTP 不保留状态的问题,通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。
    没有
    在这里插入图片描述

HTTP 状态码

在这里插入图片描述

HTTP 的缺点

  • 通信使用明文,内容可被窃听
  • 不验证通信方身份,有可能遇到伪装
  • 无法证明报文的完整性,因此有可能被篡改

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

  • HTTP 加上加密处理和认证以及完整性保护之后即时 HTTPS
  • HTTPS 是身披 SSL 外壳的 HTTP

那么为什么不一直用 HTTPS,因为加密通信会消耗更多的 CPU 及内存资源,非敏感信息采用 HTTP,包含个人信息时使用 HTTPS 加密通信

HTTP 的瓶颈

  • 一条连接一个请求
  • 请求只可起于客户端
  • 请求 / 响应未经压缩就发送
  • 首部冗长
  • 可任意选择数据压缩格式,非强制压缩
    在这里插入图片描述
Ajax 的解决办法

和以前的同步通信相比,由于它只更新一部分页面,响应中传输的数据量会因此而减少

未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值