简介

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、服务器利用会话密钥加密与客户端之间的通信。

HTTP超文本传输协议分析相关推荐

  1. 计算机网络技术超文本,网络协议确定了计算机网络传递和管理信息的规范,其中HTTP属于()A、超文本传输协议B、传输控制协...

    网络协议确定了计算机网络传递和管理信息的规范,其中HTTP属于()A.超文本传输协议B.传输控制协 更多相关问题 尿血证常见的病因病机有______.脾不统血.______.脾肾两虚.______. ...

  2. 网络(7)-HTTP(HyperText Transfer Protocol,超文本传输协议)

    http是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应.请求和响应消息的头以ASCII码形式给出:而消息内容则具有一个类似MIME的 ...

  3. RFC1945 超文本传输协议--HTTP/1.0 之一

    组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook ...

  4. 超文本传输协议-HTTP/1.1

    说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善.请参考 "互联网官方协议标准"(STD 1)来了解本协议的标准化状态.本协议不限流传发布. 版权声明 Cop ...

  5. 超文本传输协议HTTP/1.1

    文章来源: http://www.blogjava.net/sunchaojin/archive/2007/08/09/http.html 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以 ...

  6. 超文本传输协议(HTTP/1.1)中文翻译

    超文本传输协议-HTTP/1.1 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善.请参考 "互联网官方协议标准"(STD 1)来了解本协议的标准化状态.本协 ...

  7. RFC1945 超文本传输协议--HTTP/1.0 之二

    5. 请求(Request)从客户端到服务器端的请求消息包括,消息首行中,对资源的请求方法.资源的标识符 及使用的协议.考虑到局限性更大的HTTP/0.9的向后兼容问题,有两种合法的HTTP请求 格式 ...

  8. HTTP超文本传输协议-HTTP/1.1中文版

    HTTP超文本传输协议-HTTP/1.1中文版 摘要 超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了 ...

  9. (转载)HTTP超文本传输协议-HTTP/1.1中文版

    HTTP超文本传输协议-HTTP/1.1中文版 摘要 超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了 ...

最新文章

  1. antd 表单提交,文件和表单内容一起提交,表单校验
  2. 背景图自适应屏幕居中显示,且不变形
  3. MongoDB进阶系列(11)——“改”的那些事(二)文档的keyvalue为数组的修改方法...
  4. golang 切片 接口_Go 经典入门系列 18:接口(一)
  5. ubuntu 一个好系统
  6. 云服务器怎么创建子网,如何使用ECS实例子网划分和子网掩码
  7. Java黑皮书课后题第3章:3.12(回文数字)编写一个程序,提示用户输入一个三位的整数,然后确定它是否是回文数
  8. 为什么张扬的人别人很讨厌_为什么每个人总是讨厌重新设计,即使他们很好
  9. ocv特性_SOC-OCV曲线是否始终值得信赖的吗?
  10. [人工智能-综述-6]:为什么说,系统的数学知识学习不是人工智能学习的必要条件
  11. idea各工作区背景颜色设置
  12. pyqt5做了一个二维码生成器,已打包成exe可执行程序...
  13. android拷机工具,Android 3DMark大更新:无敌拷机神器
  14. 12.Linux 网络配置
  15. Vanilla相关术语
  16. 域控策略之用户或计算机组策略例外配置
  17. 【Oracle】 ORA-00257: archiver error. Connect internal only, until freed
  18. CONVERT 函数的用法
  19. 都知道我们要赚大钱,没人愿意干的赚钱行业,比打工强百倍
  20. s 标签 遍历 list 数组

热门文章

  1. 第十九天:初识Linux+系统与设置命令+目录管理
  2. android 命令 格式化,Android ADB开发常用命令总结
  3. highcharts画线性图示例
  4. 遇见未来| PostgreSQL被评为“年度DBMS”的背后真相
  5. 第一天---计算机基础--支润泽
  6. 维多利亚旅行者 V6004 时尚休闲商务双肩包 黑色[价格 行情 报价] - 易迅网
  7. times被转义为X的问题
  8. 五分钟教你Android-Kotlin项目编写
  9. 假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。
  10. jmeter文件上传压测file upload-数据为空-Connection terminated parsing multipart data