小白学HTTP协议(1) 基本概念

点击“简说Python”,选择“置顶/星标公众号”

福利干货,第一时间送达!

小白学HTTP协议(1) 基本概念

@图片自制by小si

//

本文作者

看,有只猪:一只渴望知识与成长的猪。                                     


//

阅读文本大概需要 3 分钟。

HTTP协议是互联网中使用十分常见的通信协议。在《HTTP协议学习笔记》这个系列中,我将采取问答方式记录我在学习HTTP协议所遇到的问题。

我的学习资料有:

  • 《图解HTTP》

  • 极客时间课程:透视HTTP协议

0X00 HTTP协议是什么?

HTTP(Hyper Text Transfer Protocol)协议是一种用于两个计算机之间传输文字、图片、视频等超文本数据的约定和规范。我们使用的APP和网站基本都依靠HTTP协议进行通信。

0X01 HTTP协议的基础是什么?

OSI模型将网络划分为7层:

小白学HTTP协议(1) 基本概念

HTTP协议处于应用层,其使用IP协议实现寻址和路由、TCP协议实现可靠传输、DNS协议实现域名与IP的转换、SSL/TLS协议实现安全通信。

0X02 域名与IP如何进行转换?

IP是有32位二进制表示,但其对人不太友好,很容易记错,因此引入了域名。域名是一串连续的字母或数字组成域名,其被拆分为三部分,采用.隔离:

小白学HTTP协议(1) 基本概念

time.geekbang.org中,time为主机名,geekbang为二级域名,org为顶级域名。

域名与IP的转换依靠DNS服务器来转换,DNS服务器被分为三大类:

  • 根域名服务器:负责返回顶级域名服务器的IP。

  • 顶级域名服务器:负责返回权威域名服务器的IP。

  • 权威域名服务器:负责返回域名对应的IP。

因此我们查询一个域名的IP时会采用如下流程:

小白学HTTP协议(1) 基本概念

0X03 域名可以实现哪些功能?

域名和IP具备映射关系,利用该特点可以实现如下功能:

  • 重定向:域名所代表的IP可以任意变动,在面临节点异常下线时,可以通过修改DNS记录将域名映射到正常的节点,保证服务可用。

  • 标记内部服务:域名具备名字空间的特性(对应一个主机),可以使用bind9等开源软件搭建内部DNS服务器,将为每个内部服务建立内部域名,因此在进行通信时,可以直接使用域名。

  • 负载均衡:域名解析返回多个IP地址由客户端选择或返回最佳的主机。

0X04 URI和URL的区别?

URI(Uniform Resource Identifier)统一资源标识符用于区分资源。URI下有两个分支:URN和URL。

小白学HTTP协议(1) 基本概念

URL(Uniform Resource Location)统一资源定位符是表达资源的位置的同时还能标识资源,其标准格式为:

小白学HTTP协议(1) 基本概念

  • 查询参数中?代表开始,采用name=value结构,如果有多个查询参数用&并列。

  • 如果参数中出现特殊字符?&@,会将其ASCII转换为16进制并添加%作为前缀:https://www.baidu.com/s?wd=%3F3F在ASCII中代表?

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。


仔细阅读下面四篇文章,2小时快速掌握Python基础知识要点

完整Python基础知识要点



小白学HTTP协议(1) 基本概念


学Python | 聊赚钱

小白学HTTP协议(1) 基本概念
给个[在看]