说明:本笔记出自慕课网 @咚咚呛老师 的课程《编程必会基础 计算机网络+操作系统+计算机组成原理》,有兴趣的小伙伴可以移步学习,在此我只是进行了部分笔记的整理,知识也没有很深入,也希望与大家交流。如果想要深度学习计算机网络,推荐书籍:《计算机网络》。接下来会陆续更新。。。
上一节:计算机网络(3)传输层 https://blog.csdn.net/Sabrina_cc/article/details/106490380
目录
一、概述
传输层以及以下的层提供完整的通信服务;应用层是面向用户的一层
二、DNS
DNS(Domain Name System: 域名系统)(IP对应名)
解决:把没有规则的点分十进制的IP转化为域名;使用域名帮助记忆
域名由点、字母和数字组成;点分割不同的域
域名可以分为顶级域、二级域、三级域
三、DHCP协议
DHCP(Dynamic Host Configuration Protocol: 动态主机设置协议)是一个局域网协议(和外网通信需要使用NAT技术);
DHCP是应用UDP协议的应用层协议
机制:即插即用联网
不同的设备使用了DHCP协议后,会分配临时IP,不需要自行配置IP地址。
那么一个新的设备如何知道他的IP?
四、HTTP协议详解
1. 概述
HTTP(HyperText Transfer Protocol: 超文本传输协议)
超文本---->超级文本---->带超链接的文本
http(s)://<主机>:<端口>/<路径>
- 主机可以是IP地址也可以是域名
- 端口常用80 443
- 路径指向固定的内容
HTTP协议是可靠的数据传输协议(TCP);它可以传输:文本、图片、音频、视频。
HTTP协议是基于CS模式的,如图
2. web服务器工作流程
(1)接受客户端连接 首先要告诉服务的IP和端口,可以通过发布域名,让大家访问web服务器,当客户端知道IP和端口后,就可以连接到服务器。
(2)接收请求报文 客户端在需要连接的时候会构造一个HTTP报文,发送到web服务器,因此web服务器要接收的报文,会进入下一步
(3)处理请求 通过请求的内容,web服务器得知要获取的内容
(4)访问web资源 对本机资源获取
(5)构造应答
(6)发送应答
3. HTTP请求方法
GET、 POST、 DELETE、 UPDATE、 PUT、 OPTIONS、 PATCH 、HEAD 、TRACE、
4. 指定资源的方法
(1) 在地址中指定
(2)在请求数据中指定
5. 状态码
五、HTTP的工作结构
1. web缓存
思路:把一些数据缓存起来,提高访问效率
(热门内容+冷门内容)28定理
存储器层次结构:从上到下访问速度变慢,容量变大;(将热门内容放到缓存或主存中)
2. web代理
proxy: 位于客户端和服务器之间;分为两种:正向代理,反向代理
常用:Nginx, HAProxy
3. CDN
CDN(Content Delivery Network:内容分发网络)多媒体加速
4. 爬虫
本质:程序 在互联网里采集信息
弊端: 增加网络拥塞; 损耗服务器资源
六、HTTPS协议详解
HTTP是明文传输的,不安全(账号密码、个人信息、账户金额、交易信息、敏感信息…)
HTTPS(Secure)是安全的HTTP协议,默认端口:443
http(s)://<主机>:<端口>/<路径>
1. 加密模型
对称加密 VS 非对称对称
A、B是拥有一定数学关系的一组秘钥
私钥自己使用,不对外公开
公钥给大家使用,对外公开
例子:若X有一组密钥,把私钥自己保存,公钥发布出去,若Y想要发送消息,使用公钥加密之后把密文发送,X接受到使用私钥解密之后就可以查看。
2. 数字证书
数字证书是可信任组织颁发给特定对象的认证(类似:身份证)
3. SSL
SSL(Secure Sockets Layer: 安全套接层)
数据安全和数据完整; 对传输层数据进行加密后传输
4. HTTPS过程
其中SSL安全参数握手步骤:
补充(1)从客户端开始 生成一个随机数1,并告诉服务器
(2)服务器回应,并生成随机数2,至此可以确认加密算法,且同时保存存1,2
(3)客户端确认,加密后的数据发送服务器,此时信息对称,都保存了1,2,3
(4)分别生成对称密钥,由于没有传输过程,因此减少了泄漏风险
面试题
1.应用层相对于其他层,是面向用户的一层,应用层协议主要解决了什么问题?应用层是七层OSI模型的第七层。应用层直接和应用程序接口并提供常见的网络应用服务。
2.请列举5个以上的应用层协议。HTTP、FTP、SMTP、DNS、POP3、Telnet、TFTP、DHCP等。
3.什么是域名?为什么需要域名?域名是指由一串用点分隔的名字组成的网络上上某一台计算机或计算机组的名称。域名主要是为了解决IP地址难以记忆而发明的。
4.把域名解析成IP地址的服务叫做什么服务?它有什么特点。把域名解析成IP地址的服务叫做DNS服务,DNS服务呈树状结构。
5.DHCP协议是应用层中重要的一个协议,DHCP协议主要干了什么工作?DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
6.HTTP协议是广泛使用的一个协议,也是最重要的应用层协议之一,HTTP协议解决了什么问题?HTTP(超文本传输协议)是一个基于C/S架构进行通信的网络协议,HTTP协议是互联网数据通信的基础。HTTP规范了客户端请求的格式和服务端回应的格式。
7.HTTP地址有什么特点,一个完整的HTTP地址由哪几个部分组成?HTTP协议的地址由以下几个部分组成:http(s)://<主机>:端口>/<路径>
8.HTTP协议中常用的HTTP请求方法有什么?他们分别表示什么意思。GET、POST、DELETE、UPDATE等,GET方法通常表示从服务端获取数据、POST方法通常表示往服务端提交数据、DELETE方法通常表示删除服务端资源、UPDATE方法通常表示更新服务端资源。
9.HTTP服务的状态码由3位十进制数组成,主要可以分成几类呢?
10.一个浏览器在请求服务器时,拿到了404状态码的回应,请问是什么意思?404状态码为客户端错误状态码,表示客户端所请求的资源不存在。
11.一个浏览器在请求服务器时,拿到了502状态码的回应,请问是什么意思?502状态码为服务端错误状态码,表示服务端网关网络错误。
12.请简述HTTP请求报文的主要结构。HTTP请求报文由以下几个部分组成:请求行、请求头、请求内容三个部分组成,请求行包含请求方法、请求地址和HTTP协议版本。
13.请简述HTTP应答报文的主要结构。HTTP应答报文由以下几个部分组成:应答行、应答头、应答内容三个部分组成,应答行包含HTTP协议版本、状态码、状态说明。
14.什么是缓存,什么是Web缓存?缓存是指比一般存储更快的存储。Web缓存是为了加快客户端访问速度而设计的缓存,主要存储Web数据,当缓存命中时,可以有效加快客户端访问速度。
15. Web代理在生成环境中应用非常广泛,一般使用Nginx来完成代理,请问什么是Web代理,Web代理有什么作用?Nginx可以提供反向代理服务,代理指的是在客户端和服务端之间设置代理中间人,Web代理可以提供隐匿源站IP、屏蔽后端网络拓扑,负载均衡等功能。
16.什么是CDN,什么是爬虫?搜索引擎的本质是什么?CDN全称是Content Delivery Network,即内容分发网络。爬虫指的是按照一定规则在互联网中自动抓取信息的程序,搜索引擎本质就是爬虫。
17.HTTPS是安全的HTTP协议,HTTPS应用了密码学的知识,其中就包括对称加密和非对称加密,请问什么是对称加密,什么是非对称加密?对称加密指的是加密和解密使用同样的密钥,非对称加密指的是加密和解密使用不一样的密钥。
18.SSL为现代Web应用的安全作出了重要的贡献,请简述SSL握手的主要过程。