文章目录
- 一、应用层概述
- 二、DNS详解
- 1、域名
- 2、域名服务器工作过程
- 三、DHCP协议详解
- 1、概念
- 2、DHCP的作用
- 1)**解决的问题:**
- 2)实际问题说明:
- 3、DHCP的工作步骤
- 四、HTTP协议
- 1、HTTP协议详解
- 1)http协议是什么
- 2)Web服务端
- i、分类
- ii、工作过程
- iii、HTTP请求方法
- iv、如何指定资源
- 2、HTTP工作的结构
- 五、HTTPS协议详解
- 1、概念
- 2、工作过程
- 1)加密模型
- i、对称加密
- ii 、非对称加密
- iii、秘钥
- 2)数字证书
- 3)SSL
- 4)HTTPS工作过程
- i、过程
- ii、SSL安全参数握手详解
一、应用层概述
四层协议中的应用层在TCP/IP七层协议中分为:应用层、表示层、会话层
应用层工作在终端设备
- 应用层以下的层提供完整的通信服务
- 应用层是面向用户的一层
- 面向传输层的协议也可以认为是应用层的
UDP使用场景:
- 用于多媒体分发
- 比如视频、语音等实时信息
TCP使用场景:
- 用于可靠信息传输
- 比如金融交易、可靠通讯等
应用层功能:
- 定义应用间通信的规则
- 应用进程的报文类型–请求报文、应答报文
- 报文的语法、格式
- 应用进程发送数据的时机、规则
二、DNS详解
- DNS(Domain Name System:域名系统),其中域代表网络号或者AS,名表示名称
- DNS解决:计算机面对多样的进程,如何记住数量众多的IP和端口号
- DNS功能:域名(baidu.com、taobao.com)----->通过DNS服务转换—>IP
1、域名
- 域名由点、字母(不区分大小写)和数字组成
- 点分割不同的域
- 域名可以分为顶级域、二级域、三级域
- 例如:www.taobao.com 其中com为顶级域,taobao为二级域,www为三级域,还可以继续分为四级域、五级……
- 顶级域
- 国家:cn中国,us美国,uk英国,ca加拿大
- 通用:com公司,net网络机构,gov政府,org组织机构
- 二级域
- aliyun、qq、taobao…
2、域名服务器工作过程
也就是
根域名服务器:分布在各个国家
第二层:解决顶级域名服务器的解析
域名查询过程:
首选查询本地域名服务器,如果没查到,去问根域名服务器,得到顶级域名服务器所在位置,再问顶级域名服务器,得到二级域名服务器,直到查到IP地址
三、DHCP协议详解
1、概念
- DHCP(Dynamic Host Configuration Protocol:动态主机设置协议)
- DHCP是一个局域网协议,网络层中保留的三类IP地址即为局域网,使用NAT技术与外网通信
- DHCP是应用UDP协议的应用层协议
2、DHCP的作用
1)解决的问题:
同一个笔记本,在家、公司等不同地方的IP地址如何设置?
使用DHCP协议提出即插即用联网方式
2)实际问题说明:
电脑中的自动获得IP地址,就是使用了DHCP协议,这样主机会获得一个临时IP,一般会有一个租期,超过使用租期就不可以再使用,也可以续租
3、DHCP的工作步骤
- DHCP服务器监听默认端口:67
- 主机使用UDP协议广播DHCP发现报文
- UDP协议在IP协议上,IP协议会有一个IP地址,这个IP地址一般设为全1,表示它是一个广播报文
- DHCP服务器收到广播报文后发出DHCP提供报文
- 主机向DHCP服务器发出DHCP请求报文
- DHCP服务器回应并提供IP地址
四、HTTP协议
1、HTTP协议详解
1)http协议是什么
- HTTP(HyperText Transfer Protocol):超文本传输协议
- 超文本:带有超链接的文本,这个链接可以使网络从一个地方到另外一个地方;带文字、图片、视频等
- 网站地址/路径:http(s)://<主机>:<端口>/<路径>
- 主机可以是域名也可以是IP地址
- 端口:一般为80、443,安全的HTTP协议使用443端口
- 路径:指向特定的内容
- HTTP协议是可靠的数据传输协议
- HTTP协议以TCP协议为底层协议
- 数据有文本、文件、图片、动图、音频、视频,也就是我们浏览网页的Web内容
2)Web服务端
HTTP协议运行在C/S架构上,即客户端/服务端,客户端即手机、电脑等终端,服务端即Web浏览器
i、分类
硬件部分: 裸机组的部分,如计算机、虚拟机
软件部分: Nginx,Apache
ii、工作过程
- 接受客户端连接。将自己的IP(由于使用HTTP协议,使用域名)和端口号(一般为80)告诉客户端,等待客户端们连接
- 接收请求报文。客户端在需要服务时,发送HTTP请求协议报文给Web服务器。
- Web服务器根据请求报文处理请求
- Web服务器根据请求报文中的请求,访问Web资源
- Web服务器根据访问到的资源,构造HTTP应答报文
- Web服务器发送HTTP应答报文给客户端
其中,客户端发送的HTTP请求报文中,客户端根据自己的需要使用不同的请求方法
iii、HTTP请求方法
HTTP请求方法 | 功能 |
GET | 获取指定的服务端资源 |
POST | 提交数据到服务端 |
DELETE | 删除指定的服务端资源 |
UPDATE | 更新指定的服务端资源 |
PUT | - |
OPTIONS | - |
PATCH | - |
HEAD | - |
TRACE | - |
HTTP的请求报文:
[请求方法][请求地址][HTTP版本] |
请求头 |
请求内容 |
以https://coding.imooc.com/?sort=0&unlearn=0&page=2,为例
请求方法、请求地址、HTTP版本 | POST https://coding.imooc.com HTTP/1.1 |
请求头 | Accept-Encoding:gzip Accept-Language:zh-CN |
请求内容 | {‘sort’:0,‘unlearn’:0,‘page’:2} |
HTTP应答报文:
HTTP版本,状态码,状态解释 |
应答头 |
应答内容 |
状态码 | 含义 |
200~299 | 成功状态码 |
300~399 | 重定向状态码(要访问的资源在别的服务器,将服务器告诉客户端,让客户端自己重新去访问) |
400~499 | 客户端错误状态码 |
500~599 | 服务端错误状态码 |
iv、如何指定资源
不管什么方法,都需要指定到确定的服务端资源,如何指定资源?
- 在地址中指定
- 比如https://coding.imooc.com/class/355.html,其中class/355.html就是一个具体内容的指定
- 比如https://coding.imooc.com/?sort=0&unlearn=0&page=2,其中?之后的均为对内容的指定
- 在请求数据中指定
2、HTTP工作的结构
五、HTTPS协议详解
1、概念
- HTTP是明文传输的
- 但是网页中会有账号密码、个人信息、交易信息、账户信息等敏感信息,如果使用明文传输,这些信息就可能被泄露,因此有了HTTPS安全传输
- HTTPS(Secure)是安全的HTTP协议
- 网站地址:https😕/<主机>:<端口>/<路径>
- 其中有变化的为https,端口称为443
2、工作过程
1)加密模型
i、对称加密
数据-----使用秘钥A加密–>应用数据-----使用秘钥B解密—>数据
如果加密和解密的秘钥相同(即A=B),则为对称加密
ii 、非对称加密
数据-----使用秘钥A加密–>应用数据-----使用秘钥B解密—>数据
如果加密和解密的秘钥不同(即A!=B),则为非对称加密
iii、秘钥
- A、B是拥有一定数据关系的一组秘钥
- 私钥:自己使用,不对外公开
- 公钥:给大家使用,对外公开
比如老师给了大家一个公钥,当学生给老师发消息时,使用公钥加密,老师收到后,使用秘钥解密查看,公钥加密后不能使用公钥解密,除非老师的秘钥被泄露
2)数字证书
- 数字证书是可信任组织颁发给特定对象的认证
- 可信任组织:客户端和服务端都认为是可信任的组织
- 特定对象:就像身份证对于人一样
- 数字证书内容
证书格式、版本号 | 证书序列号 | 签名算法 | 有效期 | 对象名称 | 对象公开秘钥 |
3)SSL
- SSL(Secure Socket Layer:安全套接层)
- 保证数据安全和数据完整
- 对传输层数据进行加密后传输
4)HTTPS工作过程
i、过程
在C/S架构中进行
- 首先在双方之间通过443端口建立TCP连接
- 进行SSL安全参数握手
- 客户端发送数据
- 客户端首先加密数据,经过TCP连接将数据传给服务端,服务端对数据进行解密
- 服务端发送数据
- 服务端加密数据,经过TCP连接将数据传给客户端,客户端收到后对数据进行解密
ii、SSL安全参数握手详解
1、首先从客户端开始(此时客户端有随机数1)
- 客户端生成一个随机数1
- 将随机数1、协议版本、加密算法发送给服务端(明文的,不加密的)
2、然后服务端回应(此时客户端、服务端都有随机数1、随机数2)
- 服务端生成随机数2
- 提供自己的数字证书,
- 并确定客户端的加密算法
3、然后客户端回应(此时双方都有随机数1、2、3)
- 确认证书是否有效
- 生成随机数3
- 使用服务器的公钥(在数据证书中)加密随机数3
- 将加密后的数据发送给服务端
- 服务端使用自己的秘钥解密
4、开始传输
- 双方根据随机数1、2、3和相同的算法生成对称秘钥
- 双方使用对称秘钥进行加密通信
总结:
- 综合使用对称加密、非对称加密(随机数阶段使用非对称,生成秘钥后对称)
- 双方分别生成秘钥,没有经过传输,防止秘钥泄露