HTTP、HTTPS、TCP/IP基础知识
以下内容是参考多篇博文总结而来,仅作为学习笔记,若有错误欢迎指正!
一、HTTP(超文本传输协议)
1、基本概念
HTTP协议是一个基于TCP/IP通信协议来传递数据的协议
2、通信流程
2.1 建立tcp连接
2.2 web浏览器向web服务器发送请求命令
2.3 web服务器应答
2.4 web服务器关闭tcp连接
2.5 浏览器接收到服务器响应的请求
3、HTTP的特点
3.1 无连接:每次连接只处理一个请求,每次请求需通过TCP三次握手四次挥手来和服务器重新连接
3.2 无状态:对事务处理没有记忆能力,对客户端没有状态存储
3.3 基于请求和响应
3.4 通信使用明文
3.5 请求和响应不会对通信方进行确认
3.6 无法保证数据的完整性
4、HTTP请求格式
请求行、请求头、空行、请求主体
5、HTTP请求方法
get、post、head、delete、put、options、connect、trace
二、HTTPS(超文本传输安全协议)
1、基本概念
HTTPS协议由 HTTP加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议
2、通信流程
2.1 客户端向服务器发起https请求
2.2 服务器返回客户端自己的数字证书和公钥
2.3 客户端验证服务器端发送来的数字证书是否与本地受信任的证书相关信息一致,若验证通过,浏览器产生随机的对称密钥,并用服务器的公钥进行加密
2.4 服务器用自己的私钥进行解密得到对称密钥
2.5 双方用对称密钥进行通信
3、HTTPS的特点
3.1 内容加密:采用混合加密技术,中间这无法直接查看
3.2 验证身份:通过证书认证客户端访问的是自己的服务器
3.3 保证数据完整性:防止传输内容被冒充
三、TCP/IP(传输控制/网络协议)
1、四层体系结构
1.1 应用层:负责向用户提供应用程序,如HTTP、SMTP、FTP、Telnet
1.2 传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文,实现数据传输与数据共享
1.3 网络层: 负责路由以及把分组报文发送给目标主机或网络,这一层有IP、ICMP
1.4 数据链路层: 负责封装和解封IP报文,发送和接受ARP/RARP报文等
2、TCP
2.1 面向连接:发送数据前必须在两端建立连接
2.2 仅支持单播传输
2.3 面向字节流
2.4 提供拥塞控制:网络拥塞时,TCP能减少向网络注入数据的速率和数量
2.5 TCP提供全双工通信
2.6 可靠传输
3、UDP
3.1 面向无连接
3.2 有单播、多播、广播等功能
3.3 面向报文
3.4不可靠传输
3.5 头部开销小,传输数据报文高效
四、浏览器输入URL后的流程
【
】