首页 > 其他分享 >web-http协议与https协议

web-http协议与https协议

时间:2024-02-01 14:36:32浏览次数:27  
标签:协议 http web https 加密 服务端 客户端

web-http协议与https协议

http协议

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。

HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。

http协议运行简要流程
1.在客户端输入URL
2.客户端向DNS服务器发送解析请求,解析URL中域名所对应的ip地址
3.得到ip地址后,再根据地址与默认端口(80),和服务器建立TCP连接
4.客户端发出读取文件的http请求给服务器
5.服务器接受请求后作出响应,并把改所请求的html文本送回给客户端
6.释放TCP连接
7.客户端解析并且显示html文本内容

在wireshark中对访问一个http网页进行抓包,可追踪http流查看该请求与响应的相关

访问http://hcl.baidu.com/ .

http的请求方法

GET    #最常使用
POST   #提交信息
HEAD
PUT
TRACE
OPTIONS
DELETE
CONNECT

请求报文格式

响应报文格式

在http中,数据传输都是明文的,内容可能会被窃听,同时无法证明报文的完整性,可能遭到篡改,也无法验证通信方的身份。

于是就产生了更安全的https协议。

https协议

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

在https下传输的数据包是这样的:

均为密文传输,大大提高了安全性。

https协议中,主要包含了对称加密和非对称加密与数字签名。

在当下,普遍都是使用混合加密,来结合对称加密和非对称加密的优点,再通过引入证书机制等来完善其中的漏洞。

混合加密的大概流程:

1.客户端向服务器发送tls版本,可选的机密套件以及自己生成的第1个随机数。
2.服务端进行打招呼回复,回复自己支持的tls版本以及选择的加密套件并且生成自己生成第2个随机数来发送给客户端。
3.紧接着服务端发送自己的证书和公钥,并告知发送完成。
4.客户端检查证书(数字签名检查),没问题则生成随机数(预主密钥),再通过刚刚的公钥加密发送给服务端。
5.服务端通过自己的私钥解开刚刚加密过的预主密钥
6.客户端和服务端都通过第1随机数和第2随机数和预主密钥来生成会话密钥,且之后都通过这个会话密钥进行加密 。
7.之后都可以安全的使用会话密钥进行对称加密。
8.服务端若要与其他客户端进行联系,则产生的会话密钥是不同的。

总结

相比 HTTP 协议,HTTPS 协议增加了很多握手、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全。建议多多使用https协议进行数据传输,保护安全。

标签:协议,http,web,https,加密,服务端,客户端
From: https://www.cnblogs.com/lllxin/p/18001142

相关文章

  • httpx教程
    首先,首先导入HTTPX: >>>importhttpx 现在,让我们尝试获取一个网页。>>>r=httpx.get('https://httpbin.org/get')>>>r<Response[200OK]> 同样,发出HTTPPOST请求:>>>r=httpx.post('https://httpbin.org/post',......
  • Linux系统常见web服务自启动
    注册systemd服务,使用systemctl设置自启动1.redis因安全问题,需要安装最新版本并设置密码。手动启动redis的命令为:/usr/redis/redis-6.2.11/src/redis-server/data/redis/redis.conf我参考这篇博客: https://www.cnblogs.com/janus2003/p/17793907.html在/etc/systemd/sys......
  • npm证书过期:npm ERR! request to https://registry.npm.taobao.org/element-ui failed
    场景:使用淘宝源安装element-ui时npm证书过期报错信息如下:npmERR!codeCERT_HAS_EXPIREDnpmERR!errnoCERT_HAS_EXPIREDnpmERR!requesttohttps://registry.npm.taobao.org/element-uifailed,reason:certificatehasexpirednpmERR!Acompletelogofthisrun......
  • 在计算机“.”上没有找到服务W3SVC。(http)/在计算机上没有找到服务WAS
    在配置完Windows下的IIS服务之后,新建了一个网站,却不能启动。错误提示是:在计算机“.”上没有找到服务W3SVC。(http)和在计算机上没有找到服务WAS。 解决办法:打开电脑控制面板->程序->程序和功能->启用或关闭windows功能原因是:没有开启相关服务  可以发现,网站可以成功启......
  • Windows Server常见web服务自启动
    1.nginxwindows版的自启动借助WindowsServiceWrapper小工具,将Nginx转换为Windows服务WinSW-x64的下载地址:https://github.com/winsw/winsw/releases将WinSW-x64下载下来后,直接重命名为nginx-service.exe复制到nginx根目录。新建service-logs文件夹在存放服务日志。新建ng......
  • WebAssembly核心编程[2]:类型系统
    对于绝大多数编程语言来说,类型都是编程的基础,WebAssembly自然也不例外。总的来说,WebAssembly涉及的类型不多,很好掌握,接下来我们就来介绍一下WebAssembly编程涉及到的几种类型。本篇内容参考WebAssemblySpec。一、ValueType二、Function三、Memory四、Table五、Global六、......
  • HTTP报文结构详解
    HTTP/HTTPS简介HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWideWeb)服务器传输超文本到本地浏览器的传送协议。HTTP工作在TCP/IP协议体系中的TCP协议上,是一个基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。HT......
  • 搭建Nginx服务器实现WEB服务
    一般搭建Web服务器,都会要求在该服务器上创建几个基于域名的虚拟主机,并且还需要使用DNS实现域名解析,下面内容我们就对这个问题来进行例题的演示。(用2个基于域名虚拟主机)希望能对各位it人士有所帮助,话不多说,我们直接进入主题!!!1.安装Nginxviminstallnginx2.创建所需的站点根目录,在根......
  • ClientBuilder https请求时忽略SSL证书。
    在chrome中连接https时,有时被告知不是私密链接,手动可以继续。用java代码进行https也遇到这种情况,可以 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法附完整可用代码importorg.glassfish.jersey.jackson.JacksonFeature;importjavax.net.ssl.SSLContext;im......
  • kali学习笔记-06-Webshell文件上传漏洞使用
    kali学习笔记-06-Webshell文件上传漏洞使用KaliLinux网络安防一、使用weevely制作一句话木马脚本在KaliLinux的终端中输入命令weevely,可以从错误提示中看到基本的使用方法。二、配置OWASP靶机三、参考文献WebShell文件上传漏洞.3......