https/http

一、https

默认端口号443

主要方式:
  1. 信息的完整性,通过明文摘要来保证,防止信息被第三方劫持篡改


    image.png
  2. 信息的保密性,通过对称加密+非对称加密
    客户端使用公钥对对称加密的密钥进行加密,然后传递给服务端,服务端使用私钥进行解密确认密钥,开始传输数据。
  3. 身份识别(数字证书)
    发送端,将私钥加密过的内容和公钥发给接收端,接收端用公钥解密,在进行对比

浏览器现在更提倡使用https,因为https更安全(保护隐私、数据不被篡改、身份认证),搜索引擎友好

什么是SSL?

SSL(Secure Socket Layer) —— 网景(Netscape)公司设计的主要用于web的安全传输协议。它位于TCP传输层协议和应用层协议之间。(它没有被划分在OSI网络协议模型中,且认为它是应用层的子层。)

image.png

现在广泛使用的是TLS

TLS的验证握手过程如下图:
image.png
怎么知道证书是否被人篡改过?

浏览器首先用哈希函数对明文信息的摘要做哈希得到一个哈希值(用到的就是证书中的签名哈希算法SHA256),然后用根CA的公钥对根证书的签名作解密得到另一个哈希值(用到的算法就是RSA非对称算法),如果两个哈希值相等则说明证书没有被篡改过。当然还需校验证书中服务器名称是否合法以及验证证书是否过期。
这样就免受中间人攻击了,因为假如有中间人修改了证书的内容(如将证书中的公钥替换成自己的公钥),那么将获得不同的哈希值,从而两个哈希值不匹配导致验证失败。如果要绕过这个机制,中间人必须要也替换签名,使签名也相匹配。而做到这一点就需要破解到了根证书的密钥(而这是不可能的,中间人必然会失败)。

具体配置步骤:

1、申请/生成证书,包含公钥和私钥, 然后将相关的证书文件放到nginx/conf/cert文件夹中
2、修改nginx的config文件,
  • 配置SSL/TSL的版本
  • 设置公钥文件路径
  • 设置私钥文件路径
server {
    listen 443;
    server_name 你网站的域名;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/你的证书文件名.pem;
    ssl_certificate_key  cert/你的证书文件名.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}
3、设置将http请求通过301强制转发到https
server {
 
        listen 80;
 
        server_name 您的域名;
 
        return 301 https://$server_name$request_uri;
 
}
4、重启nginx

二、http

默认端口号80

1、http1.0是短连接

每次与服务器交互都会新建立一个连接,交互完成后就断开连接

image.png

缺点:

  • 每次请求都要创建连接
  • HTTP1.0中存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能。
  • HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准

2、http1.1是长连接

建立一次连接,多次请求均由这个连接完成。
优点:

  • 【长连接】 HTTP1.1中默认开启长连接keep-alive
  • 【节约带宽】 HTTP1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,客户端接收到100才开始把请求body发送到服务器;如果返回401,客户端就可以不用发送请求body了节约了带宽
  • 【缓存控制】 HTTP1.1引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略
    image.png
  • 【错误通知状态码】 在HTTP1.1中新增了24个错误状态响应码
  • 【Host头处理】 在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。

3、http2

最显著的就是多路复用,二进制分帧,通过流的形式
优点:

  • 【多路复用】 HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。

    image.png

  • 【头部数据压缩】 HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法header数据进行压缩,这样数据体积小了,在网络上传输就会更快。

  • 【服务器推送】为了改善延迟,HTTP2.0引入了服务器推送(server push),它允许服务端推送资源给浏览器,在浏览器明确地请求之前,免得客户端再次创建连接发送请求到服务器端获取。这样客户端可以直接从本地加载这些资源,不用再通过网络。
    参考

三、http和https

1. 简单理解

  • http协议:超文本传输协议,应用层协议
  • TCP/IP:传输层协议
  • http1.1:请求得一个一个发送,发送一个,返回;再发送第二个
  • http2:请求可以同时发送

2. http的特点:

  • 无状态,如:登录状态
  • 无连接,如:短时间内多次请求同一个资源,服务器并不知道是否已经响应过,而是重新响应请求
  • 基于请求和响应
  • 请求数据是明文

3. https的特点

  • 内容加密,采用混合加密,对称和非对称混合加密。内容对称加密,对称加密的密钥使用非对称加密
  • 身份验证,通过数字签名验证身份,公钥加密和数字签名结合起来
  • 保护数据完整性,通过单向hash函数对原文生成固定长度的摘要,相同的明文生成的摘要相同
  • https加密过程:


    https加密过程

四、接口如何防刷

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

推荐阅读更多精彩内容