HTTP超文本传输协议分析

版权声明:<--本博客所有内容均为个人在学习工作中的总结、摘录等-- --转载请注明出处-- --如有侵权请联系删除--> https://blog.csdn.net/qq_42196196/article/details/82887569

简介

        HTTP(HyperText Transfer Protocol)即超文本传输协议。是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本,这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会和互联网工程工作小组共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

封包格式及各字段分析

封包格式

字段分析

请求部分
请求头>

请求方法:


URL:统一资源标识符
版本:基本都是HTTP/1.1
首部行>
Host:请求的web服务器域名地址
User-Agent:HTTP客户端运行的浏览器类型的详细信息。通过该头部信息,web服务器可以判断到当前HTTP请求的客户端浏览器类别。
Accept:指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序。
Accept-Language:指定HTTP客户端浏览器用来展示返回信息所优先选择的语言。
Accept-Encoding:指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式。
Accept-Charset:浏览器可以接受的字符编码集。
Content-Type:显示此HTTP请求提交的内容类型。一般只有post提交时才需要设置该属性。
有关Content-Type属性值可以如下两种编码类型:
(1)“application/x-www-form-urlencoded”: 表单数据向服务器提交时所采用的编码类型,默认的缺省值就是“application/x-www-form-urlencoded”。 然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。
(2)“multipart/form-data”: 在文件上载时,所使用的编码类型应当是“multipart/form-data”,它既可以发送文本数据,也支持二进制数据上载。
Connection:表示是否需要持久连接。如果web服务器端看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点, web服务器需要在返回给客户端HTTP头信息中发送一个Content-Length(返回信息正文的长度)头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然 后在正式写出内容之前计算它的大小。
Keep-Alive:显示此HTTP连接的Keep-Alive时间。使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面

响应部分
状态行>

版本:基本都是HTTP/1.1
状态码:有五大类状态码
1xx表示通知信息,如请求收到了或正在进行处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成请求还必须进一步的行动。
4xx表示客户的差错,如请求中有错误语法或不能完成请求。
5xx表示服务器的差错,如服务器器失效无法完成请求。
短语:对状态码的一个描述
首部行>

数据包分析

其他

        HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)即基于安全套接字层的超文本传输协议 ,是以安全为目标的HTTP通道,简单讲就是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http体系。用于安全的HTTP数据传输。但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。当接获HTTP的报文时,通过追踪数据流可以将数据还原出来,当使用HTTP传输密码时那么密码将以明文呈现出来,但是如果使用HTTPS,所有数据都将会加密后传输。

SSL:https://blog.csdn.net/qq_42196196/article/details/84310667

HTTP和HTTPS区别:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤:
1、客户使用https的URL访问服务器,请求建立SSL连接。
2、服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
3、客户端的浏览器与Web服务器开始协商SSL连接的安全等级。
4、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
5、服务器利用自己的私钥解密出会话密钥。
6、服务器利用会话密钥加密与客户端之间的通信。

猜你喜欢

转载自blog.csdn.net/qq_42196196/article/details/82887569
今日推荐