威尼斯人线上娱乐

Redis应用及安装,NET质量优化小技巧

5 4月 , 2019  

.NET 质量优化小技巧

Redis听到最多的一句话正是Redis的采取难啊?简单,Redis用好简单吧?不简单,有时候觉得那句话说的挺好,但又是让读者挺心里咯噔一下的,还不比不说!

在上一篇中介绍了质量优化的定义、内部存款和储蓄器泄漏和天性优化措施Android品质优化大家继承说说Android品质优化

一、Http协议

Intro

事先做了短信发送速度的提高,在大师的引导下,发送短信的快慢有了石破惊天的晋级,学到了1部分调升
.NET 质量的一部分小技巧

概述简介

Redis是3个开源(BSD许可)的内部存款和储蓄器数据结构存款和储蓄,用作数据库,缓存和新闻代理。它扶助数据结构,如字符串,哈希,列表,集合,具有限定查询的排序集,位图,超级日志和有着半径查询的地理空间引得。Redis具有内置复制,Lua脚本,LRU逐出,交易和见仁见智级别的磁盘持久性,并透过Redis
Sentinel提供高可用性,并透过Redis Cluster自动分区。
往简单来讲就是:Redis是一个开源的Key-Value存款和储蓄,它富有以下特征:

  • 速度相当慢(每一个人都知道)
  • 拉长的数据结构,包含String,List,Hash,Set,Sorted Set等
  • 单线程,免了线程切换和锁的质量消耗(搞不懂,整天商量的出现编制程序在那里不适用?)
  • 原子操作(作为数据库都有)
  • 可持久化(HighlanderDB与AOF)
  • 发表/订阅
    (个人认为RabbitMQ那方面比较优越,在微服务卡宴PC调用这里,作服务的发现)
  • 支持Lua脚本
  • 分布式锁 (集群的机要)
  • Redis应用及安装,NET质量优化小技巧。事务 (作为数据库都有)
  • 主从复制与高可用(Redis Sentinel)
  • 集群(叁.0版本以上)

索引

简短的说,索引就好像书本的目录,目录能够连忙找到所在页数,数据库中索引能够扶持急速找到数据,而不用全表扫描,合适的目录能够大大升高数据库查询的频率。

.
优点大大加速了数据库检索的速度,包蕴对单表查询、连表查询、分组查询、排序查询。日常是一到多个数据级的质量进步,且随着数据数量级拉长。.
缺点索引的创办和保证存在消耗,索引会占用物理空间,且随着数据量的增添而充实。在对数据库举行增加和删除改时需求爱抚索引,所以会对增删改的品质存在影响。

A.当某字段数据更新频率较低,查询频率较高,常常有限定查询(>, <, =,
>=, <=)或order by、group
by产生时建议使用索引。并且选择度越大,建索引越有优势,那里接纳度指一个字段中绝无仅有值的数码/总的数量。

B. 平日还要存取多列,且每列都富含重复值可思考建立复合索引

  • 间接开立索引和直接创设索引直接创立:
    使用sql语句创造,Android中得以在SQLiteOpenHelper的onCreate或是onUpgrade中央直机关接excuSql创立语句,语句如CREATE
    INDEX mycolumn_index ON mytable 直接创制:
    定义主键约束依旧唯1性键约束,能够直接创立索引,主键默许为唯一索引。
  • 平日索引和唯一性索引普通索引:CREATE INDEX mycolumn_index ON
    mytable
    唯壹性索引:保险在索引列中的全体数据是绝无仅有的,对聚簇索引和非聚簇索引都足以动用,语句为CREATE
    UNIQUE COUSTERED INDEX myclumn_cindex ON mytable
  • 单个索引和复合索引单个索引:索引建立语句中仅包含单个字段,如上边的普通索引和唯一性索引创立示范。复合索引:又叫组合索引,在目录建立语句中同时涵盖多个字段,语句如:CREATE
    INDEX name_index ON username(firstname,
    lastname),其中firstname为前导列。
  • 聚簇索引和非聚簇索引(聚集索引,群集索引)聚簇索引:物理索引,与基表的物理顺序相同,数据值的各类总是依照顺序排列,语句为:CREATE
    CLUSTERED INDEX mycolumn_cindex ON mytable WITH
    ALLOW_DUP_ROW,其中WITH
    ALLOW_DUP_ROW代表同意有重复记录的聚簇索引非聚簇索引:CREATE
    UNCLUSTERED INDEX mycolumn_cindex ON mytable索引暗中认可为非聚簇索引

  • 对此复合索引,把施用最频仍的列做为前导列。要是查询时前导列不在查询条件中则该复合索引不会被运用。如create
    unique index PK_GRADE_CLASS on student (grade, class)select *
    from student where class = 二未利用到索引select * from dept where
    grade = 三使用到了目录
  • 防止对索引列举办总括,对where子句列的其余总计假诺不能够被编写翻译优化,都会造成查询时索引失效select *
    from student where tochar=’2′
  • 正如值幸免采纳NULL
  • 多表查询时要小心是接纳适用的表做为内表。连接条件要充份考虑富含索引的表、行数多的表,内外表的挑叁拣4可由公式:外层表中的合营行数
  • 内层表中每三次搜索的次数明确,乘积最小为一流方案。实际多表操作在被实际执行前,查询优化器会依照连年条件,列出几组恐怕的三番五次方案并从中找出种类开发非常小的特等方案。
  • 查询列与索引列次序一致
  • 用多表连接代替EXISTS子句
  • 把过滤记录数最多的口径放在最前面
  • 善用运用存款和储蓄进度,它使sql变得更灵活和快捷(Sqlite不辅助存款和储蓄进程::>_<::
    )
  1. 互连网协议:客户端与服务端之间的商议

  2. 主流协议:http、socket、ftp、pop叁

  3. http协议

    1)多用与b/s架构

    2)问题

     短连接:每次客户端与服务端交互时,先建立连接,交互完毕后,关闭连接
    
     无状态:服务端只能记得住当次请求状态
    

    三)http:壹.0 – 最近主流版本
    http:1.1 – 较新本子(向下兼容)
    http:二.0 – 最新版本

HttpClient 优化

关于使用 HttpClient ,大约很多个人都知情尽量选用单例以进步 HttpClient
的性能。

由于 HttpClient
在发送请求时索要举行域名解析,使用的时候第2遍一般的话会慢1些,大家在
HttpClient 开头化完毕之后,向指标地址发送一个 HEAD
请求,那样会把域名解析结果有一个缓存,实际去乞请的时候所需用的域名解析的时间就会削减了,那样就能够提高第二回实际上发送请求的速度。

HttpClient 的超时时间设置尽量短以免止超长等待升高响应时间

Redis数据结构

建议直接看Redis官网的数据结构,因为尚未想看二手Redis数据结构威尼斯人线上娱乐,,那里大致介绍:

  • String
    那是最简单易行的Redis类型。假若只行使那种类型,Redis就好像2个可持久化的Memcached服务器。
  • List
    Redis的List是根据双向链表达成的,能够支撑反向寻找和遍历。
    常用案例:聊天系统、社交互连网中取得用户最新刊登的帖子、简单的音信队列、音信的分页列表、博客的褒贬系统。
  • Hash
    Hash是一个String类型的田野和value之间的映射表,请见下图,类似于.NET中的Hashtable和Dictionary。重要用来储存对象,能够免止系列化的开销和出现修改决定的标题。
  • Set
    Set也是叁个列表,可是它的非正规之处在于它是足以自行排重的:当要求仓库储存2个列表数据,而又不指望出现重复的时候,Set是3个很好的精选(比如ID的集纳)。并且Set提供了判断某些成员是还是不是在3个Set集合内的接口,那也是List所未有的。
  • Sorted Set
    Sorted Set和Set的应用境况类似,分化是Sorted
    Set会依照提供的score参数来开始展览机动排序。当你需求三个平稳的还要不另行的聚众列表,那么就可以挑选Sorted
    Set数据结构。常用案例:游戏中的排名榜。

事务

使用工作的两大益处是原子提交和更优性能。

原子提交代表同一业务内的有所修改只怕都成功大概都不做,假如有些修改失败,会活动回滚使得全体修改不奏效。

Sqlite暗许会为各类插入、更新操作创制贰个事务,并且在历次插入、更新后立时付给。

诸如此类1旦总是插入100遍数据实际上是创制工作->执行语句->提交这几个进度被重复执行了100次。假诺大家显式的开创工作->执行十0条语句->提交会使得这一个创造工作和交由那几个进程只做3次,通过这种3回性事务能够使得品质小幅度升级。尤其当数据库位于sd卡时,时间上能省掉四个数据级左右。

Sqlte突显应用工作,示例代码如下:

public void insertWithOneTransaction() { SQLiteDatabase db = sqliteOpenHelper.getWritableDatabase(); //开始一个事务 db.beginTransaction(); try { for (int i = 0; i < 100; i++) { db.insert(yourTableName, null, value); } // 设置当前事务成功 db.setTransactionSuccessful(); } catch (Exception e) { e.printStackTrace(); } finally { //结束事务 db.endTransaction(); }}

中间sqliteOpenHelper.getWritableDatabase()表示收获写表权限。

二、http请求协议

同步操作优化

原本的同步操作,可以改为异步处理的选拔异步方法处理,

如查询数据库等操作大多能够改为异步操作,裁减线程阻塞,进一步进步 CPU
的利用率。

多少个职分的调度,能够不要求关心八个职责调度的话就足以而且起步职分而且不用等待。

Redis主要特征

  • 管道
    Redis服务是一种C/S模型,提供请求-响应式协议的TCP服务,所以当客户端请求发出,服务端处理并再次回到结果到客户端,1般是以堵塞形式等待服务端的响应,但那在批量甩卖连接时延迟难题相比严重,所以Redis为了进步或弥补这一个题材,引入了管道技术:能够形成服务端未及时响应的时候,客户端也得以三番五次发送命令请求,做到客户端和服务端互不干涉影响,服务端并最后回到全部服务端的响应,那在促进原有C/S模型交互的响应速度上有了质的压实。
    脾性:在C/S交互中,客户端可发送任意数请求命令,不要求等服务端响应后再行发送请求;而服务端能够3回性实现并回到全体客户端请求结果,也可以分批次回到请求结果,那关键看服务端处理结果的快慢而定。
  • 事务
    Redis事务是一组命令的联谊。二个事务中的命令要么都执行,要么都不进行。假义务令在运转时期出现谬误,不会自行回滚。
    管道与业务的分别:管道首即使互联网上的优化,客户端缓冲壹组命令,叁回性发送到服务器端执行,然则并不可能确定保证命令是在同2个作业里面实践;而工作是原子性的,能够保险命令执行的时候不会有来源其余客户端的命令插入到命令连串中。

其他Sqlite的优化

  • 话语的拼接使用StringBuilder代替String不难的String相加会导致创立多少个一时半刻对象消耗质量。StringBuilder的空间预分配质量好得多。假使您对字符串的长度有大约通晓,如十0字符左右,能够一贯new
    StringBuilder内定初阶大小,收缩空间不够时的双重分配。
  • 询问时回来更加少的结果集及越来越少的字段。查询时只取要求的字段和结果集,越多的结果集会消耗越多的时光及内存,愈多的字段会促成更加多的内部存款和储蓄器消耗。
  • 少用cursor.getColumnIndex依据品质调优进程中的阅览cursor.getColumnIndex的时间消耗跟cursor.getInt相差无几。能够在建表的时候用static变量记住某列的index,间接调用相应index而不是历次查询。

public static final String HTTP_RESPONSE_TABLE_ID = _ID;public static final String HTTP_RESPONSE_TABLE_RESPONSE = "response";public List<Object> getData() { …… cursor.getString(cursor.getColumnIndex(HTTP_RESPONSE_TABLE_RESPONSE)); ……}//优化为 public static final String HTTP_RESPONSE_TABLE_ID = _ID;public static final String HTTP_RESPONSE_TABLE_RESPONSE = "response";public static final int HTTP_RESPONSE_TABLE_ID_INDEX = 0;public static final int HTTP_RESPONSE_TABLE_URL_INDEX = 1;public List<Object> getData() { …… cursor.getString(HTTP_RESPONSE_TABLE_RESPONSE_INDEX); ……}
  1. 客户端发送3个伸手,应该有如下多个部分:

    伸手行: 请求方法、请求url 状态码、(http协议版本)

    呼吁尾部: 表明服务器要运用的附加消息

    恳请主体: 提交给服务器的哀告数据

  2. HTTP客户端请求内容详解

    1)请求行 – 请求的音信

     请求类型 - get、post、put等
    
     请求地址 
    
        如果是get请求,参数应该拼到url的后面url?key=value,但请求体为空
    
        如果是post请求,url后面不拼参数,参数放在请求体中
    

数据结构优化

在行使较多的 Model 处考虑 Model
中是不是有较多的无用字段,假如有能够设想用贰个新的轻量级的 Model ,优化
Model 数据结构优化内部存款和储蓄器存款和储蓄。

普遍应用难点

  • 缓存穿透处理
    怎样是缓存穿透?当依据Redis
    key在缓存中询问后,不设有对应Value,就应该会在后端系统如DB中去找寻,该Key的产出请求量一旦变大,那么就会对DB造成相当的大的下压力。消除办法有:a.前端危机控制,将恶意穿透意况消除在外;b.对查询结果为空的景观还是进行缓存,但缓存时间会设置得十分的短,壹般是几分钟。
  • 缓存雪崩处理
    什么是缓存雪崩?当缓存服务珍视启恐怕多量缓存集中在某三个小时段失效,这样在失效的时候,也会给后端系统(比如DB)带来十分的大压力。化解办法有:后端连接数限制,错误阈值限制,超时处理,缓存失效时间均匀分布,前端永不失效及后端主动立异。
  • 缓存时间长度
    方针定位复杂,必要多维度的乘除。
  • 缓存失效
    限期失效,事件失效,后端主动立异。
  • 缓存Key
    Hash、规则、前缀+Hash,十分情状可人工干预。
  • Lua脚本
    服务端批量拍卖及作业能力,有条件逻辑的可扩张脚本。使用它的好处有:减少互联网支出、原子操作、可复用。
  • Limit
    可滑动时间窗口,如采取于Session,Memcached需每一趟传Key和Value。

异步线程

Sqlite是常用于嵌入式开发中的关系型数据库,完全开源。与Web常用的数据库Mysql、Oracle
db、sql
server分歧,Sqlite是贰个内嵌式的数据库,数据库服务器就在您的次第中,无需网络布局和保管,数据库服务器端和客户端运转在同等进程内,减少了网络访问的开支,简化了数据库管理。不过Sqlite在现身、数据库大小、网络方面存在局限性,并且为表级锁,所以也没须求102线程操作。

Android中多少不多时表查询恐怕源消耗费时间不多,不会导致AN猎豹CS6,不过当先十0ms时同样会让用户觉得到延时和卡顿,能够置身线程中运营,但Sqlite在出现方面存在局限,多线程序控制制较劳顿,那时候可应用单线程池,在任务中施行db操作,通过Handler重回结果和UI线程交互,既不会影响UI线程,同时也能防患出现带来的百般。

可选取Android提供的AsyncQueryHandler或近似如下代码达成:

ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();singleThreadExecutor.execute(new Runnable() { @Override public void run() { db.insert("你的表名", null, value); handler.sendEmptyMessage;

1个互联网请求能够大致分为连接服务器 ->
获取数据七个部分。当中连接服务器前还包涵DNS解析的进度;获取数据后大概会对数据实行缓存。

     状态码 - 服务器端的状态

2)请求头 - 反映给服务端的信息

     格式为 key:value,key:value,...

     accept - 表示浏览器可接受的MIME类型
     accept-Encoding - 浏览器能够进行解码的数据编码方式

     accept-language - 表示服务端接受的语言

       zh-cn:简体中文
       zh-tw:繁体中文
       zh - 中文
       us -英文

     connection - 表示当前链接状态

       keep-alive - 保持连接

     host - 请求的服务器网址;

     referer - 表示当前的请求来源

       实现防盗链接

     user-agent 获取到用户浏览器信息

     cache-control -缓存控制

       max-age 设置最大活动周期,设置缓存保存的最大时间的单位为秒,为0代表不缓存

     cookie - 将cookie自动携带到请求头

     content-type:互联网媒体类型;使用post请求必须设置这个属性

         也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。

         <form>元素提交时默认的类型
        一般文件上传时默认为application/x-www.form-urlencoded

     Content-Length:请求内容的长度

        对于POST请求来说Content-Length必须出现

3)请求体 - 存放请求参数

如果为post请求,有值,如果为get请求为空

缓存

重复使用的值缓存起来(依据数量供给采取使用缓存类型,变量缓存或内部存款和储蓄器缓存或redis等分布式缓存),减弱数据库查询次数

Redis不难介绍安装(Centos)

下载地址,提议生产环境使用稳定版
一、 确认保障已经安装有编译工具make

威尼斯人线上娱乐 1

从不安装make能够选拔:

yum install make -y

贰、初始设置
RedisDesktopManage:页面效果:

威尼斯人线上娱乐 2

RedisDesktopManage下载地址:https://redisdesktop.com/
Redis官网:https://redis.io/
Redis安装推荐博客:http://blog.csdn.net/lc1010078424/article/details/78295482
无数其余博客写的是真的垃圾!

连天服务器优化策略

节约 DNS 解析进程,DNS 全名 Domain Name
System,解析意指依照域名得到其相应的 IP 地址。如:
的域名解析结果便是拾4.236.1四7.7陆。

第一遍域名解析壹般必要几百皮秒,可透过直接向IP而非域名请求,节省掉那1部分岁月,同时可防止备域名威胁等拉动的危害。

当然为了安全和扩展思索,这几个IP或者是三个动态更新的IP列表,并在IP不可用景况下通过域名访问。

同盟地点提起的动态 IP
列表,协理优先级,每一遍依据地点、互连网项目等选项最优的服务器IP进行一而再。对于服务器端仍是能够调优服务器的TCP拥塞窗口大小、重传超时时间、最大传输单元等。

3、http响应协议

Sql 优化

  1. 1旦要求同时插入许多数据,尽恐怕采纳 BulkCopy 操作以升级质量

  2. 立异/查询条件优化,使用更确切的尺度,尽恐怕选择主键查询和换代

  3. 批量更新数据的屡屡操作能够联合为1遍操作的就集合为三次操作,不能合为一遍操作就1回提交,注意防
    Sql 注入

  4. 复杂 Sql 使用事务时,能在 Sql
    中选取工作就在Sql中选用不然在代码中使用。使用事务时仅在需求打开事务的地点开启事务,事务截至就交付业务,不要在业务中混合不必要放在工作中处理的数据库操作

获取数据优化策略

节省连接建登时间,如开启keep-aliveHttp 1.一暗中同意运维了keep-alive。对于Android来说私下认可景况下HttpU大切诺基LConnection
和HttpClient都敞开了keep-alive。

其余网络请求框架也足以展开相应安顿

快要四个请求合并为贰个进展呼吁,比较普遍的便是网页中的CSS Image
Pepsi-Colas。 借使某些页面内乞请过多,也足以设想做肯定的呼吁合并。

  • 对于 POST 请求,Body 可以做 Gzip 压缩,如日志。

  • 对请求头举行削减这几个http 壹.1不接济,spdy及http 二.0支撑。http 一.一能够因此服务端对前1个呼吁的央求头举行缓存,前边同样请求头用md五之类的id来代表即可。

缓存常见的图形、JS、CSS 等静态财富。

  • 减去壹般API数据选择Gzip压缩
  • 简洁数量格式如JSON代替 XML,WebP代替其余图片格式
  • 对于分裂的装备分化网络重回分化的始末 如分裂分辨率图片大小。
  • 增量更新需要多少更新时,可思索增量更新。如周围的服务端进行bsdiff,客户端进行bspatch。
  • 大文件下载帮忙断点续传,并缓存Http
    Resonse的ETag标识,下次呼吁时带上,从而明确是不是数据变动过,未变更则直接再次来到304。

缓存获取到的数目,在肯定的行之有效时间内再次恳请能够一向从缓存读取数据。

今昔的互联网请求框架都可实行相应的缓存配置

后天周末,就说这么多,祝我们周末Happy

  1. 服务端给客户端响应音信,应该有如下三片段

    响应行:协议版本 状态码 原因短语

    响应尾部:

    响应宗旨: 再次来到给客户端的响应数据,可能是字符数据,也说不定是字节数据

  2. HTTP服务端响应内容详解

    1)响应行

      状态码
      协议版本
    

    2)响应头

      Allow:服务器支持哪些请求方法
    
         GET、POST
    
      Content-Encoding 文档的编码(Encode)
    
      Cache-Control: 告诉客户端,服务端的缓存配置
    
      Connection - 表示当前的连接状态
    
        keep-alive 表示保持连接
    
      content-length 响应数据的长度(大小)
    
      content-type - 响应数据的mime类型
    
         一般情况下:text/html
    
      Date - 当前响应的日期时间
    
      keep-alive 设置保持连接的超时和最大存活时间
         timeout=5 max=99
    
      server - 服务器端的信息
    

    3)响应体

      服务器返回给客户端的数据主体
    

End

谢谢大师,跟着法师展开贰回质量优化,确实学到好多,自身对一部分概念也是精通的尤为尖锐了。

4、扩大内容

1. 请求类型

     get/post/head/put/delete/options/trace

2. 标准API - 标准的请求方式

      get - 获取数据
      post - 修改数据
      put - 新增数据
      delete - 删除数据

3. 状态码

      1XX - 服务器的信息
      2XX - 表示请求成功
        200:请求成功
        201:成功创建连接
        202:接受请求            
      3XX - 表示重定向
        302:表示重定向
        304:表示服务端资源没有变化,访问缓存
          问题 - 这次请求没有真正低访问服务器端
        305:使用代理
      4XX - 客户端错误
        400:错误的请求
        404:网页找不到
        403:拒绝访问
        405:请求类型不允许
      5XX - 服务端错误
        500:服务端错误
        502:路径错误
        504:请求超时
        505:http版本不支持

4. MIME类型 - 文件类型

     MIME类型是如何定义的

        //定义MIME类型
        <mime-mapping>
            //文件的扩展名
            <extension>jpg</extension>
            //对应的MIME类型
            <mime-type>image/jpeg</mime-type>
         </mime-mapping>

       常见的MIME类型

        html - text/html
        htm  - text/html
        css  - text/css
        js   - text/javascript
        json - application/json
        jpg  - image/jpeg
        text - text/plain

5. 请求参数

     1)get请求类型

         将请求数据 - url?key=value(浏览器地址)

         安全性低

         请求地址的长度是有限制的

         请求数据中包含中文的话,需要转码

     2)post请求类型

         浏览器地址栏url,不包含请求类型

         安全性相对比较高

         对请求数据的长度没有要求

         请求数据中包含中文的话,可以不转码,对中文的处理相对比较好

6. 控制HTTP头部方法

    可以配置每个HTML文件的HTTP-EQUIV标签控制缓存

      <meta http-equiv="Cache-Control" content="no-cache">


    在PHP页面中控制响应头

       header("Content-Type: image/jpeg");

伍、缓存工作原理

  1. 客户端能够活动保存已经访问过的文书档案的副本,那些副本就变成“文书档案缓存”

  2. 当客户端再一次发送针对同三个UENCOREL的央求时,如果当地有“已缓存的副本”,就足以平昔从地点存款和储蓄设备而不是长距离服务器提取该文书档案了。

  3. 多少缓存有下列优点

    削减了冗余的多少传输,节省客户端流量费用
    缓解服务器带宽瓶颈的难题,服务器能够省去出越来越多的带宽
    降低了对服务器的能源消耗和周转需要
    跌落了由于远距离而致使的加载延时

  缓存原理:发送请求->是否有缓存->
  有缓存,判断是否过期,如果过期不用,如果不过期跟服务器进行验证,判断是否是最新的数据;如果不是,需要更新缓存,更新缓存后,从缓存中获取。

  没有缓存,从服务器中获取

六、http基本优化

网址品质优化最重大的便是要减小HTTP请求及每便响应中内容的长短。能够从一而再进度中的下列方面加以考虑:

壹、域名解析

尽可能减少域名解析次数——减少跨站外部资源的引用

2、创造连接

努力减少连接创建次数——使用Keep-Alive避免重复连接

三、发送请求
铆劲收缩请求次数——合理设置Expires时间、能源统壹

4、等待响应
提升服务器端运行速度——提升多少运算及查询速度

5、接收响应
尽心尽力减小响应数据长度——启用压缩

七、安全的HTTP协议

  1. HTTP协议本质上属于“明文传输”,大概被窃听和曲解,政党、银行等地下应用须要要求“安全版本的HTTP”:http协议暗许端口80

  2. HTTPS协议将音讯发送给TCP层在此以前,先付给了2个安全层(由SSL或TLS协议落到实处),安全层负责对新闻进行加密和平消除密操作。https协议暗许端口4四三


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图