IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTP/HTTPS -> 正文阅读

[网络协议]HTTP/HTTPS

1.URL

<协议>://<主机>:<端口>/<路径>

2.HTTP特点:

HTTP协议本身是无连接的,使用面向连接的tTCP作为运输层协议

HTTP协议是无状态的,同一个用户第二次访问相同资源服务器并不能记录用户信息

TCP三次握手完成前两次后,就会把HTTP请求报文作为第三次握手的数据发送给服务器

2.HTTP报文结构

(1)请求报文

请求行:方法+url+http版本号+换行符

首部行:首部字段:值

空白行

实体主体

(2)响应报文

状态行:http版本+状态码+状态码解释短语+换行符

首部行:首部字段:值

空白行

实体主体

3. HTTP方法

OPTION:请求一些选项的信息

GET:请求读取URL所标志的信息

HEAD:请求读取URL所标志的信息的首部

POST:给服务器添加信息

PUT:在指明的URL下存储一个文档

DELETE:删除URL所标志的资源

TRACE:用来进行回环测试

CONNECT:用于代理服务器

4.HTTP请求报文首部字段

Host:www.baidu.com (指明主机的域名)

Connection:close/keep-alive? (指明是长连接还是短连接)

User-Agent:Mozilla(表明用户代理使用的浏览器是火狐)

Accept-Language:cn(表明用户希望得到中文文档)

5.HTTP状态码

1xx:表示通知信息,如收到了或正在处理

2xx:表示成功,如接受或知道了

3xx:表示重定向,如要完成请求还必须采取进一步的行动

4xx:表示客户的差错,如请求中有错误的语法或不能完成

5xx:表示服务器的差错,如服务器失效无法完成请求

6.Http1.0和1.1区别

1.缓存处理不同
2.新增了状态码,比如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
3.Host头处理:1.0认为每个每台服务器只有一个ip,后来出现了虚拟主机,http1.1在首部行加入了host属性
4.长连接:http1.1在首部行加入了Connection: keep-alive

?

7.Http2.0和Http1.x区别

1.HTTP1.x的解析是基于文本,Http2.0基于二进制格式
2.连接共享:每个连接可以有多个request,每个request有一个id,接收方根据id处理不同的request
3.Http报文压缩,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
4.服务端推送:客户端没有发起请求,服务器也可以推送信息到客户端

8.什么是HTTPS

Https=http+加密+认证+完整性保护
https是身披ssl外壳的http,通常http直接和tcp通信,使用https时,http先和ssl通信,再由ssl和tcp通信
HTTPS使用443作为默认端口

9.HTTP的缺点

(1)通信使用明文,不加密,内容会被窃听

http底层是tcp协议,tcp可能被窃听,即使http对报文加密,仍然会被截获,只不过是不知道报文内容

(2)无法验证通信双方身份

http协议不存在验证通信方的步骤,任何人都可以发起请求,无意义的请求也会照单全收,会dos攻击
??
(3)无法保证报文的完整性
http无法证明通信报文的完整性,请求或者响应的内容被篡改也无法获悉

?

10.HTTPS的优点

(1)通信加密:http和ssl(Secure socket layer)组合使用,构成https

(2)内容加密:客户端对http报文加密后再发送请求,客户端和服务器必须同时具有加密和解密机制

(3) ssl可以查明通信方的证书,证书由第三方机构颁发,很难伪造

?

11.加密方式

(1)共享密钥加密(对称密钥加密):
加密密钥和解密密钥使用相同的密码体制
通信双方需要用同一种密钥解密,发送信息的一方需要将密钥随着加密的信息一同发送给接收方,信息和密钥可能被截获

例如:A和B是进行通信的双方
假设A手握一把密钥 key1,那么A需要克隆一把相同的密钥 key1'
在第一次通信中,A将报文连同 key1'一起发送给B
此后:A和B则分别使用 key1、key1' 分别对接收/发送的报文进行解密/加密

(2)公开密钥加密(非对称密钥加密):
发送信息的一方使用接收方的公有密钥加密,发送文件,接收方使用私有秘钥解密
公有密钥可以公开,私有秘钥不公开

例如:B希望自己发送给A的报文被加密
假设A手握公钥 key2 和私钥 key2'
首先,A将报文主体连同 key2 一起发送给B
此后,B向A发送的报文都将使用 key2 加密
而被 key2 上锁的报文 只有A手上的 key2' 才能解密


(3)https采用混合加密的方法:
在交换密钥的环节使用非对称加密,之后的通信则使用对称加密
例如:A手握一对非对称密钥(公钥key3、私钥key3'),B手握一对对称密钥(key4、key4')

阶段1:交换密钥-使用非对称加密
1、A将公钥 key3 发送给B
2、B将下一阶段加密/解密用的 key4' 放在报文中,并使用公钥 key3 对报文进行加密
3、A使用私钥 key3' 解密报文,得到 key4'

阶段2:数据通信-使用对称加密
A和B分别使用 key4' 和 key4对接收/发送的报文进行解密/加密

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:24:00  更:2021-10-03 17:24:27 
 
开发: 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年11日历 -2024/11/26 2:23:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码