分享到:
首页
>
新闻文章
>
192.168.1.1
>
【基础补充】http/https协议及通信过程
【基础补充】http/https协议及通信过程
返回192.168.1.1
最后更新:2022-01-19 14:59
1 HTTP协议与HTTPS协议
1.1 HTTP协议概述
定义:HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。
作用:设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
原理:
HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML文件、图片文,查询结果等。
HTTP协议一般用于B/S架构()。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
特点:
http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。
无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。
缺点:
请求信息明文传输,容易被窃听截取。
数据的完整性未校验,容易被篡改。
没有验证对方身份,存在冒充危险。
1.2 HTTPS协议概述
定义:HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。
SSL与TLS:
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协议多次握手,导致页面的加载时间延长近50%;
HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
申请SSL证书需要钱,功能越强大的证书费用越高。
SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。
1.3 HTTPS与HHTP对比
HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
http和https使用连接方式不同,默认端口也不一样,http是80,https是443。
2 通信过程
HTTP通信过程:
浏览器建立与WEB服务器之间的连接;
浏览器将请求数据打包(生成请求数据包)并发送给WEB服务器;
WEB服务器将处理结果打包(生成相应数据包)并发给浏览器;
WEB服务器关闭连接。
HTTPS通信过程:
首先客户端通过URL访问服务器建立SSL连接。
服务端收到客户端请求后,会将网站支持的证书信息(证书中包含公钥)传送一份给客户端。
客户端的服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
服务器利用自己的私钥解密出会话密钥。
服务器利用会话密钥加密与客户端之间的通信。
代理服务器的影响:
无代理服务器。客户端给WEB服务器直接发送请求,并接收WEB服务器的应答。
有代理服务器。客户端先给代理服务器发送请求,代理将请求转给WEB服务器,代理接收服务器的应答,并将应答转给客户端。在这个过程中,代理可以实现对请求和应答的修改。
3 URI和URL的区别
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
URI:Uniform Resource Identifier 统一资源标识符。是用来标示 一个具体的资源的,我们可以通过 URI 知道一个资源是什么。
URL:Uniform Resource Location 统一资源定位符。是用来定位具体的资源的,标示了一个具体的资源位置。互联网上的每个文件都有一个唯一的URL。
4 报文组成
4.1 请求
请求报文的构成:
请求行:由三部分组成:请求方法、请求URL、协议/版本。例:GET /index.html HTTP/1.1。
请求头(Request Header):一些键值对,一般由w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义、
空行:请求头与请求体之间用一个空行隔开。
请求正文:要发送的数据(一般post方式会使用)。
常见请求方法:
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可利用向Web服务器发送’*'的请求来测试服务器的功能性。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
GET:向特定的资源发出请求。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
PUT:向指定资源位置上传其最新内容。 6、DELETE:请求服务器删除Request-URI所标识的资源。
DELETE:从服务器上删除资源。需要把要删除的资源的ID上传给服务器。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
post和get的区别:
都包含请求头请求行,post多了请求body。
get多用来查询,请求参数放在url中,不会对服务器上的内容产生作用。post用来提交,如把账号密码放入body中。
GET是直接添加到URL后面的,直接就可以在URL中看到内容,而POST是放在报文内部的,用户无法直接看到。
GET提交的数据长度是有限制的,因为URL长度有限制,具体的长度限制视浏览器而定。而POST有。
4.2 响应
访问一个网页时,浏览器会向web服务器发出请求。此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。
响应报文构成:
状态行:协议版本、数字形式的代码和状态描述,各元素之间以空格间隔。
响应头:包括服务器类型、日期、长度、内容类型等。
空行:响应头与响应体之间用空行隔开。
响应正文:浏览器会将实体内容中的数据取出来,形成页面。
响应状态码:
1XX- 信息型,服务器收到请求,需要请求者继续操作。
2XX- 成功型,请求成功收到,理解并处理。
3XX - 重定向,需要进一步的操作以完成请求。
4XX - 客户端错误,请求包含语法错误或无法完成请求。
5XX - 服务器错误,服务器在处理请求的过程中发生了错误。
常见状态码:
200 OK - 客户端请求成功
301 - 资源(网页等)被永久转移到其它URL
302 - 临时跳转
400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
404 - 请求资源不存在,可能是输入了错误的URL
500 - 服务器内部发生了不可预期的错误
503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
4.3 浏览器报文查看
查看网页报文。在浏览器按F12,查看网页源码,可以按以下步骤查看通信报文情况。
5 总结
对比了解HTTP/HTTPS的缺点。
对比了解HTTP/HTTPS的通信过程。
了解URI与URL的定义与区别。
了解请求报文和响应报文的格式。
参考文献
《 HTTP请求报文和HTTP响应报文 》
《 第二天数据包拓展 》
本文由
在线网速测试
整理编辑,转载请注明出处。
热门文章
千兆路由速度只有100(千兆路由 速度)
电信上门测网速的是真的吗(电信员工上门测网速)
【史上最全】网速慢的原因及解决方法大全
192.168.1.1手机登陆改密码,手机怎么改WIFI密码?
文章分类
测速
192.168.1.1
192.168.0.1路由器设置
路由器设置
电脑快捷键
路由器品牌
电脑百科
网速体育
手机归属地
IP地址查询
身份证号码查询
数字吉凶查询
万年历查询
银行卡号查询
邮政编码查询
电话区号查询
全国车辆违章查询
周公解梦大全查询
历史上的今天
天气预报15天查询
老黄历
12306火车票查询
2021年油价查询
今日限行尾号查询
文章