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

HTTP

一、HTTP概述

超文本传输协议,HTTP是一种按照URL指示,将超文本文档从一台主机(web服务器)传输到另一台主机(浏览器)的应用层协议,以实现超链接的功能

二、HTTP的工作原理

在用户点击URL为http://www.qq.com/index.html的链接后,浏览器(客户端)和web服务器执行以下动作:

①浏览器分析超链接中的URL

②浏览器向DNS服务器请求解析www.qq.com的ip地址

③DNS服务器将解析出的ip地址返回浏览器

④浏览器根据得到的ip地址找到对应的web服务器,并建立TCP三次握手

⑤建立连接后,浏览器向web服务器发送http请求(GET /index.html)

⑥服务器给出响应,将文档index.html发送给浏览器,用html代码中的资源渲染页面

⑦TCP四次挥手释放连接

三、DNS解析过程

假设你要查询www.baidu.com的ip地址

1、首先会查找浏览器的缓存,看看是否能找到www.baidu.com对应的ip地址,找到就直接返回;否则进行下一步

2、客户端将请求递归发送给本地DNS服务器,如果查找到也直接返回,否则继续进行下一步

3、本地DNS服务器进行迭代查询,首先向根域名服务器发送请求,根域名服务器返回负责.com的顶级域名服务器的ip地址的列表

4、本地DNS服务器再向其中一个负责.com的顶级域名服务器发送一个请求,返回负责.baidu的权威域名服务器的ip地址列表

5、本地域名服务器再向其中一个权威域名服务器(次顶级域名服务器)发送一个请求,返回www.baidu.com所对应的ip地址

四、HTTP请求方法

①请求报文的方法

方法

描述

GET

对服务器资源获取的简单请求

POST

用于发送包含用户提交数据的请求

PUT

请求存储一个web页面

②GET请求方式与POST的区别

请求方式

GET

POST

数据包

产生一个TCP数据包

可能产生两个TCP数据包

编码方式

只能进行url编码

支持多种编码方式

请求参数

把参数包含在URL中,用&连接起来

通过POST包的data字段传输参数

请求缓存

会被主动Cache

不会缓存,除非手动设置

收藏为书签

支持收藏为书签

不支持

历史记录

参数会被完整保留在浏览历史记录里

不会保留

参数数据类型

ASCll的字符

没有限制数据类型

五、HTTP响应状态码

状态码

含义

例子

1xx

通知信息

100=服务器正在处理客户请求

2xx

成功

200=请求成功(OK)

3xx

重定向

301=永久性重定向;302=暂时性重定向

4xx

客户端错误

403=服务器禁止访问,权限有关;404=服务器无法找到资源

5xx

服务器端错误

500=服务器内部错误;503=以后再试

六、HTTP头部信息

1、User-Agent

浏览器标识(操作系统标识、浏览器语言、版本信息)

2、Host

服务器的DNS名称,包含URL

3、Server

响应头包含处理请求的原始服务器的软件信息

4、Referer

浏览器向web服务器表明自己是从哪个网页/URL/点击获得当前请求ip的网址

5、Location

web服务器告知浏览器,试图访问的对象已经被移到别的位置了,到该头部指定的位置去取

七、HTTP的版本及连接超时问题

1、HTTP/1.0

默认是短连接,每次请求都要建立一个TCP连接,可以强制开启长连接

2、HTTP/1.1

默认长连接,即TCP连接默认不关闭,可以被多个请求复用。在同一个TCP连接里,客户端可以同时发送多个请求

3、HTTP/2.0

二进制协议。完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应

4、连接超时问题

①在交互过程中,HTTP中的响应体的Connection字段的keep-alive起着至关重要的作用

②对于HTTP的短连接和长连接实际上是TCP的长短连接

③keep-alive字段的重要参数

⑴tcp_keep_time:keepalive的空闲时长,默认两个小时

⑵tcp_keep_probes:在tcp_keep_time之后,没有接收到对方的确认,继续发送保活探测包的次数,默认为10次

⑶tcp_keep_intvl:keepalive探测包的发送间隔,默认为75秒

八、Session和Cookie

1、Session是服务器和客户端的一次会话过程

2、Cookie是保存客户端的一小块文本串的数据

3、Session和Cookie的产生过程

?

用户第一次请求服务器时,服务器根据用户提交的信息,创建对应的Session ID,并在请求返回时将Session ID返回给浏览器。浏览器在收到Session ID后,会将此信息存入Cookie中,同时Cookie记录此Session ID是属于哪个域名。当用户第二次访问服务器时,请求会自动判断此域名下是否存在Cookie信息,如果存在,则自动将Cookie信息也发送给服务器,服务器会从Cookie中获取Session ID,再根据Session ID查找对应的Session信息。

4、Session和Cookie的区别

Session

Cookie

存放位置

服务器

客户端

存储数据类型

任意数据类型

ASCLL

安全性

较高

较低

存储空间大小

有效期

较短,超时或客户端关闭都会失效

可设置长时间保存

HTTPS

一、HTTPS概述

1、安全超文本传输协议,HTTPS是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,即HTTPS=HTTP+SSL/TLS

2、SSL,安全套接字层协议,位于传输层和应用层之间的一种协议层,是网络通信提供安全及数据完整性的一种安全协议。主要通过三个协议实现:SSL握手协议、SSL修改密文协议、SSL报警协议

3、TLS,安全传输层协议,它是SSL3.0的后续版本

二、HTTPS的加密过程

①客户端向服务器端发起HTTPS请求,连接到服务器端的443端口

②服务器端保留自己的私钥、公钥放在数字证书里

③服务器端返回SSL证书信息(证书内容有公钥、证书颁发机构、失效日期)和服务器端随机数

④客户端验证证书的合法性,如果证书合法,则生成一个随机的会话主密钥(对称),并用服务器的公钥加密

⑤客户端将加密后的密钥发送到服务器

⑥服务器端收到客户端发送的密钥后,用自己的私钥进行解密,得到客户端的会话主密钥

⑦服务器端将数据用会话主密钥加密后传输到客户端

⑧客户端用自己的密钥进行对称解密,得到服务器返回的数据

三、数字签名和数字证书

1、数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,它的出现是为了防止公钥被篡改

2、公钥和个人等信息,经过Hash摘要算法加密,形成消息摘要;将消息摘要拿到拥有公信力的认证中心CA,用它的私钥对消息摘要加密,形成数字签名。公钥和个人信息、证书颁发机构和失效日期、数字签名共同构成数字证书

四、对称加密和非对称加密

1、对称加密是指加密和解密使用同一密钥。常见的对称加密算法有DES、AES

2、非对称加密是指加密和解密使用不同的密钥(即公钥和私钥)。公钥和私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解开。常见的非对称加密算法有RSA

3、对称加密和非对称加密的区别

对称加密

非对称加密

密钥

加密解密使用同一密钥

加密解密使用不同密钥

安全性

数字签名

不可使用数字签名

可以使用数字签名

运算速度

五、HTTP和HTTPS的比较

HTTP

HTTPS

安全性

不安全

安全

默认端口

80

443

资源消耗

较少

较多

是否需要证书

不需要

需要

报文是否加密

不加密

加密

URL存放位置

GET请求的host字段

SSL协议中Client_hello报文的server_name字段

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

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