HTPP协议

本文介绍了网络通信的基础流程,包括浏览器如何通过DNS解析域名获取IP地址,TCP的三次握手确保连接的可靠性,HTTP协议的请求方法及其格式,以及HTTPS如何通过SSL/TLS提供安全的数据传输。同时,讨论了HTTPS相对于HTTP的优势和缺点,如数据加密、身份验证和可能带来的性能影响。
摘要由CSDN通过智能技术生成

一个简单例子

www.baidu.com

1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;

2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;

3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求

报文作为 TCP 三次握手的第三个报文的数据发送给服务器;

4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;

5、释放 TCP连接;

6、浏览器将该 html 文本并显示内容;

域名解析

1、浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。

注:chrome://net-internals/#events

2、.如果用户浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。

3、如果没有找到,在本地域名服务器(最近的一台DNS服务器)中查询IP地址

4、如果没有找到,本地域名服务器会向根域名服务器发送一个请求

5、如果根域名服务器中也不存在该域名,但判定这个域名属于“com”域,则本地域名服务器会向com顶级域名服务器发送一个请求

6、如果com顶级域名服务器没有找到该域名,但判定这个域名属于“google.com”域,则本地域名服务器会向google.com域名服务器发送一个请求,以此类推

7、直到本地域名服务器得到域名对应的IP地址,并将其缓存到本地,供下次查询使用

TCP的3次握手

为什么要三次握手

为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接

请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后

的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的

连接请求报文段后,就误认为是client再次发出的一个新的连接请求。

于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,

那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求

,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接

已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。

采用“三次握手”的办法可以防止上述现象发生。

HTTP是什么?

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、

协作式和超媒体信息系统的应用层协议

通俗来讲,他就是计算机通过网络进行通信的规则,是一个基于请求与响应,无状态的,应用层的协议,

常基于TCP/IP协议传输数据

HTTP请求方法

GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器

POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。

PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。

HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。

DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。

OPTIONS:查询相应URI支持的HTTP方法。

TRACE: 追求一个资源请求中间所经过的代理(该方法不能由浏览器发出)

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

HTTP请求格式(请求协议)

HTTP响应格式(响应协议)

HTTP状态码

TCP四次挥手

为什么要四次分手

TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。

TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,

只是表示主机1已经没有数据要发送了,主机1告诉主机2,

它的数据已经全部发送完毕了;但是,这个时候主机1还是可以

接受来自主机2的数据;当主机2返回ACK报文段时,

表示它已经知道主机1没有数据发送了,

但是主机2还是可以发送数据到主机1的;

当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,

就会告诉主机1,我也没有数据要发送了,

之后彼此就会愉快的中断这次TCP连接。

HTTP协议在网络模型中的位置

为什么要用https

HTTP中存在如下问题

1、请求信息明文传输,容易被窃听截取。

2、数据的完整性未校验,容易被篡改

3、没有验证对方身份,存在冒充危险

什么是HTTPS

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):

一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密

SSL又是什么

SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。

浏览器在使用HTTPS传输数据的流程

1、首先客户端通过URL访问服务器建立SSL连接。

2、服务端收到客户端请求后,会将网站支持的证书信息

(证书中包含公钥)传送一份给客户端。

3、客户端的服务器开始协商SSL连接的安全等级,

也就是信息加密的等级。

4、客户端的浏览器根据双方同意的安全等级,建立会话密钥,

然后利用网站的公钥将会话密钥加密,并传送给网站。

5、服务器利用自己的私钥解密出会话密钥。

6、服务器利用会话密钥加密与客户端之间的通信。

HTTPS的缺点

HTTPS协议多次握手,导致页面的加载时间延长近50%;

HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;

申请SSL证书需要钱,功能越强大的证书费用越高。

SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code.song

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值