| |
|
开发:
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 协议(一)网络基础 和 简单的 HTTP 协议 |
HTTP 协议,全称Hyper Text Transfer Protocol,超文本传输协议,它是一种规范,完成从客户端到服务器端等一系列运作流程。
计算机与网络设备要相互通信,双方就必须基于相同的方法。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则,而我们就把这种规则称为 协议(protocol)。 像这样把与互联网相关联的协议集合起来总称为 TCP/IP。 TCP/IP 协议族按层次分别分 为以下 4 层:应用层、传输层、网络层和数据链路层。
在这个过程里,数据流动如图, 发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层 时会把对应的首部消去。
3.1 负责传输的IP协议 IP网际协议位于网络层,作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足两个重要的条件是 IP 地址和 MAC 地址。 IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定 地址。IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC 地址基本上不会更改。 IP 间的通信依赖 MAC 地址,采用 ARP 协议可以根据通信方 的 IP 地址就可以反查出对应的 MAC 地址。 3.2 确保可靠的TCP协议 TCP 位于传输层,提供可靠的字节流服务。 所谓的字节流服务是指,为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理。为了准确无误地将数据送达目标处,TCP 协议采用了三次握手 、四次挥手策略。 3.3 负责域名解析的DNS服务 DNS服务是和 HTTP 协议一样位于应用层的 协议。它提供域名到 IP 地址之间的解析服务。 用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 IP地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。 但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。 所以,DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。
URI,统一资源标识符,就是由某个协议方案表示的资源的定位标识符。 URL,统一资源定位符,也就是我们访问页面时的网页地址。 URI 用字符串标识某一互联网资源,而 URL表示资源的地点。可见 URL是 URI 的子集。 了解一下URI的格式:
HTTP 协议用于客户端和 服务器之间的通信。 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一 端称为服务器端。 HTTP 是一种不保存状态,即无状态(stateless)协议。每当有新的请求发送时,就会有对应的新响应产 生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了 更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设 计成如此简单的。 HTTP/1.1 虽然是无状态协议,但为了实现期望的保持状态功能,于 是引入了 Cookie 技术。有了 Cookie 再用 HTTP 协议通信,就可以管理状态了。
HTTP 协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。传输容量小的话,问题也不大,但是如果包含大量图片等容量大的资源时,每次请求就会造成无谓的TCP连接建立和断开,增加通信量的开销。 为了解决这个问题,HTTP/1.1和部分 HTTP/1.0 采用持久连接的方法,只要任意一端没有明确提出断开连接,则保持TCP连接状态。 使用长连接的HTTP协议,会在响应头有加入这行代码:
HTTP是无状态协议,无状态的优点是减少服务器的CPU和内存资源的消耗。为了保持长连接引入了Cookie技术,它通过在请求和响应报文中写入Cookie信息来控制客户端的状态。 首次响应,服务器会在响应报文里包含一个首部字段信息Set-Cookie,以此来通知客户端保存Cookie,客户端在之后的请求报文中加入Cookie 后再发送到服务器端。 服务器端接收到客户请求中的 Cookie 后,对比服务器上的记录,可以得到该客户之前的状态信息。 首次请求是这样的:
在存有Cookie信息之后,请求时这样的:
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/25 21:45:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |