| |
|
开发:
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 |
第一章——了解web及网络基础 1.1 使用HTTP协议访问Web 在浏览器的地址栏输入URL时,可以看到web页面,即使你不了解其运作原理,也能看到web页面。 ?发送请求获取服务器资源的web浏览器,称之为客户端。 ?web使用一种名为HTTP(超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程。 1.2 HTTP的诞生 1.2.1 为知识共享而规划web WWW: 万维网world wide web HTML:超文本标记语言hypertext markup language URL :统一资源定位符uniform resource locator? SGML:标准通用标记语言 standard generalized markup language 1.2.2 web 成长时代 1.2.3 驻足不前的HTTP HTTP/0.9? ?HTTP/1.0? HTTP/1.1 1.3 网络基础TCP/IP 1.3.1 TCP/IP协议族 协议(Protocol):不同的硬件,操作系统之间的通信,所用的这一切都需要一种规则,这种规则称为协议。 ?与互联网相关联的协议集合起来总称为TCP/IP。 1.3.2 TCP/IP的分层管理 TCP/IP协议族里最重要的一点就是分层。 TCP/IP分为四层:应用层、传输层、网络层、数据链路层。 应用层:向用户提供应用服务时通信的活动。 HTTP协议就在这一层。 传输层:提供处于网络连接中的两台计算机之间的数据传输。 这一层的协议有: TCP(Transmission Control Protocol,传输控制协议)、UDP(User Data Protocol,用户数据报协议),DNS(Domain name system域名系统) 网络层:IP协议在这一层。 用来处理在网络层上流动的数据包。数据包是网络传输的最小数据单位。 数据链路层:用来处理网络的硬件部分。物理设备 1.3.3 ——TCP/IP通信传输流 ?利用TCP/IP进行网络通信时,会通过分层顺序与对方进行通信。 发送端(客户端):从应用层往下走, 接收端(服务器):从应用层往上走。 接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。 ?封装:把数据信息包装起来的做法称为封装 1.4 与HTTP关系密切的协议:IP、 TCP和DNS 1.4.1 负责传输的IP协议 IP位于网络层,所有使用网络的系统都会用到IP协议。 IP和IP地址: IP协议:就是把数据包传送给对方,而要保证确实传送到对方那里,两个重要的条件是IP地址和MAC(媒体访问控制地址)。 IP地址:指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会改变。 利用ARP(地址解析协议address resolution protocol)协议凭借MAC地址进行通信 IP间的通信依赖MAC地址。 ARP协议是一种解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。 在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获得很粗略的传输路线。 这种机制称为路由选择。 无论那台计算机,那台网络设备,他们都无法掌握互联网中的细节。 ?1.4.2 确保可靠性的TCP协议 按层次分,TCP位于传输层,提供可靠的字节流服务(byte stream service)。 字节流服务:为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。 可靠的传输服务是把数据准确可靠地传给对方。 TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。 确保数据能到达目标(TCP协议的三次握手three-way handshaking) 用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,一定会向对方确认是否成功送达。 握手过程中使用了TCP的标志—— SYN(synchronize异步)和ACK(确认acknowledgement)? 1.? 首先,发送端会发送给接收端一个带有SYN标志的数据包 2.然后,接收端收到来自发送端发送的SYN标志后,会发送给发送端带有SYN/ACK标志的数据包 3.最后,发送端确认接收端已经收到了,会发送给接收端带有ACK标志的数据包。 ?1.5 负责域名解析的DNS(domain name system)服务 DNS是和HTTP协议位于同一层的协议。 它提供了域名到IP地址之间的解析服务。 用户经常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。 计算机既可以被赋予IP地址,也可以被赋予主机名和域名。 DNS协议通过域名查找IP地址,或者逆向从IP地址反查域名的服务。 1.6 各种协议与HTTP协议的关系? ? 1.7 URI和URL? URI(Uniform Resource Identifier统一资源标识符)和URL(Uniform Resource Locator统一资源定位符)。其实相比于前者我们更熟悉后者。 1.7.1 URI(了解) ?URL是URI的子集。 统一资源标识符(URI)通用语法”中列举了几种 URI 例 子,如下所示。
1.7.2 URI格式 ?第二章 简单的HTTP协议2.1 HTTP协议用于客户端和服务器端之间的通信 客户端: 请求访问文本或图像等资源的一端 服务器端:提供资源相应的一端 2.2 通过请求和响应的交换达成通信? ???????? ? HTTP协议规定,请求从客户端发出,最后服务器端响应应该请求并返回。 客户端发送给某个http服务器端的请求报文中的内容。? 请求报文的构成:请求的方法、请求的URI、协议版本、可选的请求首部字段和内容实体构成。? ? ? ?
? 响应报文由:协议版本、状态码、原因短语、响应首部字段、主体组成。 2.3 HTTP是不保存状态的协议 (无状态协议stateless) ? ?使用HTTP协议,每当发送新的请求时,就会有新的响应产生。? HTTP协议本身不具有保留之前请求或响应报文的信息。这样可以更快的处理大量的事务。 但是在后面的实际需求中会发现,我们需要保留自己曾经登录过的信息,这就出现了cookie技术。 cookie可以管理状态,可以实现保持的登录状态。 2.4 请求 URI定位资源 ? 2.5 告知服务器意图的HTTP方法? ?GET:获取资源 GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端1解析后返回响应内容。 如果访问的是文本,那就保持原样返回; 如果是CGI(commom getway interface),那就返回执行后的输出结果。 ? ? POST :传输实体主体 POST方法用来传输实体的主体。 ? ? |
|
网络协议 最新文章 |
使用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年12日历 | -2024/12/28 21:15:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |