HTTP和HTTPS协议

HTTP

HTTP简介

  • HTTP协议是超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种 网络协议,所有的WWW文件都必须准许你这个标准。它是从WEB服务器传输超文本编辑语言(HTML)到本地浏览器的传送协议
  • 设计HTTP最初的目的是为了提供一种发布和接受HTML页面的方法

HTTP原理

  • HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML文件,图片文件,查询结果等
  • HTTP协议一般用于B/S架构,浏览器作为HTTP客户端听过URL想HTTP服务端即WEB服务器发送所有请求

HTTP特点

  • 基于请求和响应:基本的特性,由客户端发起请求,服务端响应
  • 简单快速,灵活
  • 通信使用明文、请求和响应不会对通信放进行确认、无法保护数据的完整性
  • 无连接:下次每次连接只处理一个请求。服务器处理完请求,并受到客户端的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session
  • 无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传

URI和URL的区别

  • URI是用来标示一个具体的资源的,我们可以通过URI知道一个资源是什么
  • URL则是用来定位具体资源的,标示了一个具体的资源位置,互联网上的每个文件都有一个唯一的URL

HTTP报文组成

  • 请求报文构成

    • 请求行:包括请求方法、URL、协议/版本
    • 请求头(Request Header)
    • 请求正文
  • 响应报文构成

    • 状态行
    • 响应头
    • 响应正文
  • 报文从运用层传送到运输层,运输层通过TCP三次握手和服务器建立连接,四次挥手释放连接

  • 为什么需要三次握手呢?

    • 为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误
  • 三次握手实质上就相当于下列的对话

    • 客户机:服务器,我想要和你建立连接,你同意吗?(SYN=1)
    • 服务器:客户机,我同意和你建立连接(ACK=1);我也想和你建立连接,你同意吗?(SYN=1)
    • 客户机:服务器,我同意和你建立连接。(ACK=1)
  • 在进行第二次握手时(即服务器向客户机进行应答时),可以看作时发了两次包,先回答客户机的服务请求(ACK=1,ack=x+1),然后再向客户机发出请求(SYN=1,seq=y)

  • 四次挥手实质上就相当于下列的对话

    • 客户机:服务器,我想和你断开连接,你同意吗?(FIN=1)
    • 服务器:我同意(ACK=1)(在此期间,服务器可能还会向客户机发送数据,但是客户机却不能再向服务器发送数据)
    • 服务器:客户机,我想要和你断开连接,你同意吗?(FIN=1)
    • 客户机:我同意。(ACK=1)
  • 再等待2MSL时间后就真正断开了连接

HTTPS

HTTPS简介

  • HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立安全通道,加密数据包。HTTPS使用的主要目的是提供对网络服务器的身份认证,同时保护交换数据的隐私与完整性。TLS是传输层加密协议,前身是SSL协议(SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持)

HTTPS的缺点

  • HTTPS协议多次握手,导致页面的加载时间延长近50%
  • HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗
  • 申请SSL证书需要钱,功能越请打的证书费用越高
  • SSL设计到的安全算法会消耗CPU资源,对服务器资源消耗较大

HTTP和HTTPS的区别

  • https协议需要到ca申请证书
  • http是超文本传输协议,心思是明文传输,https则是具有安全性的ssl加密传输协议
  • http和https使用的链接凡是不同,默认的端口也不一样,http是80,https是443
  • http的连接很简单,是无状态的;https协议是由SSL+ HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

HTTPS优化总结易记版

  • HSTS重定向技术:将http自动转换为https,减少301重定向
  • TLS握手优化:在TLS握手完成前客户端就提前向服务器发送数据
  • 会话标识符:服务器记录下与某客户端的会话ID,下次连接客户端发ID过来就可以直接用之前的私钥交流了
  • OSCP Stapling:服务器将带有 CA 机构签名的 OCSP 响应在握手时发给客户端,省的客户端再去CA查询
  • 完全前向加密PFS:使用更牛逼复杂的秘钥算法

HTTP与HTTPS的工作原理

HTTP的工作原理

  • 一次HTTP操作称为一个事物,其工作过程可分为四步
    • Client与Server建立连接,单击某个超链接,HTTP的工作开始
    • 连接建立后,Client发送一个请求给Server,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符,Client信息和可能的内容
    • Server接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括Server信息、实体信息和可能的内容
    • Client接收Server返回的信息通过浏览器显示在用户的显示屏上,然后Client和Server断开连接

HTTPS的工作原理

  • Client使用HTTPS的URL访问Web服务器,要求与Web服务器建立SSL连接
  • Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端
  • 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级
  • 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站
  • Web服务器利用自己的私钥解密出会话密钥
  • Web服务器利用会话密钥加密与客户端之间的通信

常见问题

SSL与TLS的区别?

  • SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议
  • TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议

第三方攻击者能否让自己的证书显示出来的信息也是服务端呢?

  • (伪装服务端一样的配置)显然这个是不行的,因为当第三方攻击者去CA那边寻求认证的时候CA会要求其提供例如域名的whois信息、域名管理邮箱等证明你是服务端域名的拥有者,而第三方攻击者是无法提供这些信息所以他就是无法骗CA他拥有属于服务端的域名

GET方法与POST方法的区别,什么时候应该使用GET,什么时候应该使用POST

  • GET
    • 一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符
    • 通过地址栏来传值
  • POST
    • 一般用于修改服务器上的资源,对所发送的信息数量没有限制
    • 通过body来传值
  • 小结
    • 一般信息的获取一般使用get请求
    • 以下情况下最好使用post请求
      • 向服务器发送大量数据(因为post没有发送数据的数量限制)
      • 无法使用缓存文件(会更新服务器上的文件)
      • 发送包含未知字符的用户输入时

三次握手中,为什么客户机最后还要再向服务器发送一次确认呢?

  • 这是为了防止已失效的连接请求报文段突然又传到了服务器。所谓“已失效的连接请求报文段”是这样产生的。考虑一种正常的情况,客户机发出连接请求,但因为连接请求报文丢失而未收到确认。于是客户机再重传了一次连接请求,后来收到了确认,建立了连接。数据传输完后,就释放了连接。客户机共发送了两个连接请求报文段,其中第一个丢失,第二个到达了服务器,没有所谓的“已失效的连接请求报文段”
  • 但是如果出现了一种异常情况,即客户机发出的第一个报文段并没有丢失,而是在某个节点上长时间滞留了,直至客户机向服务器发送了第二个报文段并且已经完成数据传输释放了连接,此时,第一个报文到达服务器后会被误以为是客户机重新发起的一次连接请求,实质上是一个早已失效的连接请求。如果没有第三次握手,那么这个连接就建立了,但是客户机并不会向服务器发送任何请求,这样连接就会一直持续,白白的消耗网络资源

为什么需要四次挥手呢?

  • TCP是全双工模式,当client发出FIN报文段时,只是表示client已经没有数据要发送了,client告诉server,它的数据已经全部发送完毕了;但是,这个时候client还是可以接受来server的数据;当server返回ACK报文段时,表示它已经知道client没有数据发送了,但是server还是可以发送数据到client的;当server也发送了FIN报文段时,这个时候就表示server也没有数据要发送了,就会告诉client,我也没有数据要发送了,如果收到client确认报文段,之后彼此就会愉快的中断这次TCP连接

MSL是什么

  • MSL是Maximum Segment Lifetime的缩写,译为报文最大生存时间,也就是任何报文在网络上存活的最大时间,一旦超过该时间,报文就会被丢弃。2MSL也就是指的2倍MSL的时间

为什么客户机发送完最后一个数据后要在TIME-WAIT状态等待 2MSL(四分钟)的时间呢?

  • 为了保证客户机最后发送的那个ACK报文段能够到达服务器。这个ACK报文段可能会丢失。因而使处在LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认。服务器会超时重传这个FIN+ACK报文段,而客户机就能在2MSL时间内收到这个重传的FIN+ACK报文段。接着客户机重传一次确认,重新启动2MSL计时器,最后客户机和服务器都可以进入到CLOSED(关闭)状态。如果没有2MSL等待时间,那么就无法收到重传的FIN+ ACK包,无法进入正常的CLOSED状态
  • 防止“已失效的连接请求报文段”出现在本连接中。客户机在发送完最后一个ACK报文段,再经过时间2MSL,就可以使本连接持续的时间内所产生的报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容