HTTP 和 HTTPS

HTTP 和 HTTPS

一、HTTP 介绍

1.1 HTTP大概版本区别

下面见到介绍一个几个版本的区别,管道机制的对比。

  • 0.9 版本。仅支持GET,服务端只能回应HTML格式字符串,发送完毕就关闭TCP链接

  • 1.0 版本。加入了POST、HEAD请求,增加请求头

  • 1.1 版本。持久链接connect:keep-alive,管道机制,分块传输,增加host

  • 2.0 版本。多工,头信息压缩,服务器自推送,无状态

下面是管道机制与非管道机制的对别

管道机制

1.2 HTTP 请求方法

HTTP中定义了GET、POST、PUT、DELETE、HEAD、TRACE、OPTIONS、CONNECT、PATCH等九种请求方法。
  • GET 请求指定的页面信息,并返回实体主体。

  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。

  • PUT 从客户端向服务器传送的数据取代指定的文档的内容。

  • DELETE 请求服务器删除指定的页面。

  • HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头

  • TRACE 回显服务器收到的请求,主要用于测试或诊断。

  • OPTIONS 允许客户端查看服务器的性能。

  • CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

  • PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

项目中最常用的就是GET和POST请求,这里再来分析一下GET和POST的区别:

1、GET参数通过URL传递,POST放在Request body中。

2、GET请求会被浏览器主动cache,而POST不会,除非手动设置。

3、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

4、Get 请求中有非 ASCII 字符,会在请求之前进行转码,POST不用,因为POST在Request body中,通过 MIME,也就可以传输非 ASCII 字符。

5、 一般我们在浏览器输入一个网址访问网站都是GET请求

6、HTTP的底层是TCP/IP。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。但是请求的数据量太大对浏览器和服务器都是很大负担。所以业界有了不成文规定,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。

7、GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

8、在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。但并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

1.3 HTTP缺点

1、通信使用明文传输,内容可能被监听。自行对数据加密的话只能对请求体加密,不能对整个请求加密,

2、不验证通讯方的身份,因此可能遭遇伪装

3、无法验证报文的完整性,有可能遭到篡改

二、HTTPS

为了解决以上1.3中HTTP的缺点,出现了HTTPS。所以HTTPS是对HTTP的补充,基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。

2.1 HTTPS优缺点

优点

1、通过证书认证客户端和服务器身份,保证安全。

2、通信内容会被加密,保证了数据安全。

3、由于安全性得到较高保障,所以未来可能在搜索引擎的表现会更好。

4、防止网站被劫持或者镜像等恶意操作。

缺点

1、在通信过程中加入加密阶段,影响效率。

2、成本较高,因为HTTPS所需要的证书通常不是免费的。

2.2 加密方式

对称加密:对称加密加解密秘钥相同。

非对称加密:非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。非对称加密与,其安全性更好。

数字摘要:像开发常用的MD5,就是数字摘要算法。严格来说不属于加密算法。信息不可还原。

效率方面:同等条件下,对称加密效率更高,非对称加密效率会低一点。

安全性方面:来说对称加密的话,秘钥在网络传输中如果被窃取到,那加密内容可以和容易被破解,但是非对称加密通过一对秘钥来保证安全,私钥由一方自己保管,无需传输,安全性相对较高

在HTTPS中采用的加密方式是,用非对称加密方案对对称加密的秘钥进行加密,有点绕,可以理解为数据传输过程为了保证效率采用的是对称加密。为了保证对称加密秘钥不被窃取,又采用了非对称加密方案对"对称加密秘钥"加密。

2.3 HTTPS建立链接过程

1、 client向server发送请求,发送的信息主要是随机值1和客户端支持的加密算法。

2、 server接收到信息之后给予client响应握手信息,包括随机值2和匹配好的协商加密算法,这个加密算法一定是client发送给server加密算法的子集。

3、 随即server给client发送第二个响应报文是数字证书。服务端必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥。传送证书,这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等内容。

4、 客户端解析证书,这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值(预主秘钥)。

5、 客户端认证证书通过之后,接下来是通过随机值1、随机值2和预主秘钥组装会话秘钥。然后通过证书的公钥加密会话秘钥。

6、 传送加密信息,这部分传送的是用证书加密后的预主秘钥,目的就是让服务端使用秘钥解密得到预主秘钥。

7、 服务端解密得到预主秘钥,然后和随机值1、随机值2组装会话秘钥,跟客户端会话秘钥相同。

8、客户端通过会话秘钥加密一条消息发送给服务端,主要验证服务端是否正常接受客户端加密的消息。

9、同样服务端也会通过会话秘钥加密一条消息回传给客户端,如果客户端能够正常接受的话表明SSL层连接建立完成了。

2.4 中间人攻击

中间人攻击(MITM攻击)是指,黑客拦截并篡改网络中的通信数据。又分为被动MITM和主动MITM,被动MITM只窃取通信数据而不修改,而主动MITM不但能窃取数据,还会篡改通信数据。最常见的中间人攻击常常发生在公共wifi或者公共路由上。

2.5 如何避免中间人攻击

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • 概述 Http协议一路走来,一共经历了三个版本的迭代,从第一代的HTTP/0.9到引入持久连接的HTTP/1.1再...
    ZMRWEGo阅读 496评论 0 0
  • 一、HTTP协议 1.简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议...
    生信师姐阅读 788评论 0 3
  • 概念及常识 HTTP (Hypertext transfer protocol) 超文本传输协议;详细规定了浏览器...
    石头老张阅读 4,246评论 0 49
  • 前言 计算机网络是计算机专业很重要的一门课,课程中详细阐述了两台计算机之间是如何进行通信、如何保证通信的可靠性、如...
    ObjectSpace阅读 776评论 0 1
  • HTTP 几个要点 URL URL 中包含服务器域名、文件路径、收件人地址、用户名、密码等。URL 想表达的是 所...
    NapoleonY阅读 344评论 0 1