IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【图解 HTTP】 读书笔记 -> 正文阅读

[网络协议]【图解 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 的解决办法

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

未完待续…

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:28:51  更:2022-01-16 13:29:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 9:27:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码