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

.NET 质量优化小技巧

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

在上壹篇中牵线了品质优化的定义、内部存储器泄漏和总体性优化措施Android品质优化我们三番六遍说说Android品质优化

一、Http协议

Intro

事先做了短信发送速度的晋升,在活佛的辅导下,发送短信的进程有了高大的晋级,学到了1部分升迁.NET 品质的1对小技巧

概述简介

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

  • 进程十分的快(各个人都知晓)
  • 累加的数据结构,包罗String,List,Hash,Set,Sorted Set等
  • 单线程,免了线程切换和锁的性质消耗(搞不懂,整天研讨的出现编制程序在此地不适用?)
  • 原子操作(作为数据库都有)
  • 可持久化(奥迪Q5DB与AOF)
  • 文告/订阅
    (个人觉得RabbitMQ那地点可比优越,在微服务QX56PC调用这里,作服务的意识)
  • 支持Lua脚本
  • 分布式锁 (集群的根本)
  • 事务 (作为数据库都有)
  • 主从复制与高可用(Redis Sentinel)
  • 集群(三.0本子以上)

索引

简短的说,索引就像是书本的目录,目录能够快捷找到所在页数,数据库中索引可以扶持快速找到数据,而不用全表扫描,合适的目录能够大大提升数据库查询的频率。

.
优点大大加快了数据库检索的快慢,包蕴对单表查询、连表查询、分组查询、排序查询。日常是1到多个数据级的性质进步,且随着数据数量级拉长。.
缺点索引的创制和掩护存在消耗,索引会占用物理空间,且随着数据量的加码而充实。在对数据库实行增加和删除改时须求爱慕索引,所以会对增删改的习性存在影响。

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
    唯1性索引:保证在索引列中的全体数目是绝无仅有的,对聚簇索引和非聚簇索引都足以使用,语句为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 = 3使用到了目录
  • 防止对索引列实行总结,对where子句列的别的总结假如不可能被编写翻译优化,都会造成查询时索引失效select *
    from student where tochar=’2′
  • 美高梅开户网址,比较值制止选用NULL
  • NET品质优化小技巧,Redis应用及安装。多表查询时要留意是选择稳妥的表做为内表。连接条件要充份思考富含索引的表、行数多的表,内外表的抉择可由公式:外层表中的配合行数
  • 内层表中每壹次搜索的次数分明,乘积最小为最好方案。实际多表操作在被实际执行前,查询优化器会依照三番五次条件,列出几组或许的连日方案并从中找出连串开发十分的小的最棒方案。
  • 查询列与索引列次序一致
  • 用多表连接代替EXISTS子句
  • 把过滤记录数最多的规则放在最前头
  • 善用利用存款和储蓄进程,它使sql变得更其灵敏和急速(Sqlite不帮衬存款和储蓄进度::>_<::
    )
  1. 网络协议:客户端与服务端之间的磋商

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

  3. http协议

    1)多用与b/s架构

    2)问题

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

    三)http:一.0 – 近年来主流版本
    http:1.一 – 较新本子(向下包容)
    http:二.0 – 最新版本

HttpClient 优化

有关利用 HttpClient ,大约很四人都领会尽量利用单例以升级 HttpClient
的性能。

由于 HttpClient
在发送请求时要求开始展览域名解析,使用的时候第贰次壹般的话会慢一些,大家在
HttpClient 早先化完毕之后,向目的地方发送三个 HEAD
请求,这样会把域名解析结果有3个缓存,实际去央浼的时候所需用的域名解析的时刻就会缩小了,那样就足以升官第1遍实际上发送请求的过程。

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

Redis数据结构

提议直接看Redis官网的数据结构,因为从没想看2手Redis数据结构,那里差不离介绍:

  • String
    那是最简便易行的Redis类型。假使只利用那类别型,Redis就像是五个可持久化的Memcached服务器。
  • List
    Redis的List是基于双向链表完成的,能够辅助反向寻找和遍历。
    常用案例:聊天系统、社交互联网中拿走用户最新刊登的帖子、不难的音信队列、音讯的分页列表、博客的评论系统。
  • Hash
    Hash是2个String类型的田野和value之间的映射表,请见下图,类似于.NET中的Hashtable和Dictionary。首要用来存款和储蓄对象,可避防止系列化的开发和产出修改决定的标题。
  • Set
    Set也是三个列表,可是它的超常规之处在于它是足以活动排重的:当须要仓库储存一个列表数据,而又不期待出现重复的时候,Set是一个很好的选项(比如ID的聚众)。并且Set提供了判断某些成员是还是不是在2个Set集合内的接口,那也是List所未有的。
  • Sorted Set
    Sorted Set和Set的选取情形类似,分歧是Sorted
    Set会依照提供的score参数来拓展机动排序。当您需要3个上行下效的同时不重复的聚众列表,那么就能够选拔Sorted
    Set数据结构。常用案例:游戏中的排名榜。

事务

行使工作的两大好处是原子提交和更优质量。

原子提交代表同1业务内的具有修改或然都做到只怕都不做,如果某些修改退步,会活动回滚使得全体修改不奏效。

Sqlite暗中同意会为各种插入、更新操作创立二个事务,并且在每一回插入、更新后立马付给。

诸如此类只要一连插入玖拾捌次数据实际上是创办工作->执行语句->提交那几个进度被另行执行了九十六次。假设我们显式的创始工作->执行100条语句->提交会使得这些创造工作和付出那个进度只做贰回,通过那种1回性事务可以使得品质小幅进步。越发当数据库位于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()表示收获写表权限。

2、http请求协议

同步操作优化

原本的同步操作,能够改为异步处理的采用异步方法处理,

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

多少个职责的调度,能够不须要关注3个义务调度的话就能够同时起步职分而且不要等待。

Redis首要特征

  • 管道
    Redis服务是一种C/S模型,提供请求-响应式协议的TCP服务,所以当客户端请求发出,服务端处理并重回结果到客户端,1般是以堵塞情势等待服务端的响应,但那在批量甩卖连接时延迟问题比较严重,所以Redis为了提高或弥补那一个题材,引进了管道技术:能够完毕服务端未立时响应的时候,客户端也足以继续发送命令请求,做到客户端和服务端互不干涉影响,服务端并最终回到全体服务端的响应,那在力促原有C/S模型交互的响应速度上有了质的滋长。
    特征:在C/S交互中,客户端可发送任意数请求命令,不须求等服务端响应后再行发送请求;而服务端能够三次性完成并重回全数客户端请求结果,也得以分批次回到请求结果,那重大看服务端处理结果的进程而定。
  • 事务
    Redis事务是一组命令的相会。三个作业中的命令要么都推行,要么都不执行。固然命令在运作时期出现谬误,不会自动回滚。
    管道与作业的差异:管道重假使网络上的优化,客户端缓冲1组命令,一次性发送到服务器端执行,可是并不可能担保命令是在同3个工作里面实践;而工作是原子性的,能够确定保证命令执行的时候不会有出自其余客户端的命令插入到命令连串中。

其他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. 客户端发送多少个伸手,应该有如下三个部分:

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

    恳请尾部: 表达服务器要使用的叠加消息

    恳请主体: 提交给服务器的乞求数据

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

    一)请求行 – 请求的消息

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

数据结构优化

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

相近应用难题

  • 缓存穿透处理
    如何是缓存穿透?当依据Redis
    key在缓存中询问后,不设有对应Value,就应当会在后端系统如DB中去寻找,该Key的面世请求量壹旦变大,那么就会对DB造成相当大的压力。消除办法有:a.前端风险控制,将恶意穿透情形化解在外;b.对查询结果为空的气象依然实行缓存,但缓存时间会安装得相当短,壹般是几分钟。
  • 缓存雪崩处理
    哪些是缓存雪崩?当缓存服务珍视启只怕多量缓存集中在某1个日子段失效,那样在失效的时候,也会给后端系统(比如DB)带来极大压力。消除办法有:后端连接数限制,错误阈值限制,超时处理,缓存失效时间均匀分布,前端永不失效及后端主动立异。
  • 缓存时间长度
    策略定位复杂,必要多维度的测算。
  • 缓存失效
    按时失效,事件失效,后端主动立异。
  • 缓存Key
    Hash、规则、前缀+Hash,卓殊景况可人工干预。
  • Lua脚本
    服务端批量拍卖及工作能力,有条件逻辑的可扩充脚本。使用它的裨益有:收缩网络开发、原子操作、可复用。
  • Limit
    可滑动时间窗口,如使用于Session,Memcached需每趟传Key和Value。

异步线程

Sqlite是常用于嵌入式开发中的关系型数据库,完全开源。与Web常用的数据库Mysql、Oracle
db、sql
server分裂,Sqlite是2个内嵌式的数据库,数据库服务器就在您的主次中,无需互联网安插和管制,数据库服务器端和客户端运转在同样进度内,收缩了互连网访问的损耗,简化了数据库管理。但是Sqlite在产出、数据库大小、网络方面存在局限性,并且为表级锁,所以也没须求十二线程操作。

Android中多少不多时表查询可能源消耗时不多,不会导致ANPAJERO,但是超越100ms时同样会让用户感到到延时和卡顿,可以置身线程中运作,但Sqlite在产出方面存在局限,二10四线程序控制制较麻烦,那时候可应用单线程池,在职分中实施db操作,通过Handler再次来到结果和UI线程交互,既不会影响UI线程,同时也能预防出现带来的万分。

可选择Android提供的AsyncQueryHandler或接近如下代码完毕:

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

二个网络请求能够简简单单分为连接服务器 ->
获取数据多少个部分。当中连接服务器前还包罗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

2、起头设置
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 地址。如:
的域名解析结果正是10四.236.14柒.7陆。

第一遍域名解析一般供给几百阿秒,可透过间接向IP而非域名请求,节省掉那壹部分时日,同时能够制止域名恐吓等带来的高危机。

自然为了安全和扩充思量,这么些IP可能是叁个动态更新的IP列表,并在IP不可用景况下通过域名访问。

相称地点提及的动态 IP
列表,援助优先级,每一回依据地域、网络项目等选取最优的服务器IP进行延续。对于服务器端还足以调优服务器的TCP拥挤堵塞窗口大小、重传超时时间、最大传输单元等。

3、http响应协议

Sql 优化

  1. 设若供给同时插入许多数据,尽恐怕选取 BulkCopy 操作以升级品质

  2. 更新/查询条件优化,使用更加准确的规范,尽恐怕选用主键查询和翻新

  3. 批量立异数据的高频操作能够联合为3遍操作的就联合为贰遍操作,无法合为叁回操作就2回提交,注意防
    Sql 注入

  4. 复杂 Sql 使用事务时,能在 Sql
    中央银行使工作就在Sql中央银行使不然在代码中动用。使用事务时仅在须要敞开事务的地点开启事务,事务甘休就交给业务,不要在工作中混杂不供给放在工作中处理的数据库操作

获取数据优化策略

节约连接建立即间,如开启keep-aliveHttp 一.一暗中同意运维了keep-alive。对于Android来说默许情形下HttpUBMWX伍LConnection
和HttpClient都敞开了keep-alive。

其他互联网请求框架也能够展开相应安顿

快要多少个请求合并为1个开始展览呼吁,相比常见的正是网页中的CSS Image
Pepsi-Colas。 借使某些页面内乞求过多,也足以思考做一定的请求合并。

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

  • 对请求头进行压缩那些http 一.壹不协理,spdy及http 二.0支持。http 壹.1能够通过服务端对前贰个呼吁的呼吁头实行缓存,后面同样请求头用md五之类的id来代表即可。

缓存常见的图纸、JS、CSS 等静态能源。

  • 削减1般API数据运用Gzip压缩
  • 简短数量格式如JSON代替 XML,WebP代替其余图片格式
  • 对此不一致的配备不一样互联网重返不一致的剧情 如不一致分辨率图片大小。
  • 增量更新须要多少更新时,可思量增量更新。如周围的服务端进行bsdiff,客户端进行bspatch。
  • 大文件下载扶助断点续传,并缓存Http
    Resonse的ETag标识,下次呼吁时带上,从而鲜明是不是数据变动过,未改变则直接重临304。

缓存获取到的数据,在肯定的立竿见影时间内再度恳请能够一贯从缓存读取数据。

到现在的网络请求框架都可进展对应的缓存配置

明天周末,就说那样多,祝我们周末Happy

  1. 服务端给客户端响应新闻,应该有如下3部分

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

    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

谢谢大师,跟着法师展开一回质量优化,确实学到好多,自个儿对部分定义也是精通的愈益一语破的了。

④、扩张内容

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");

5、缓存工作原理

  1. 客户端能够自动保存已经访问过的文书档案的副本,这个副本就改为“文书档案缓存”

  2. 当客户端再一次发送针对同一个UPAJEROL的呼吁时,要是本地有“已缓存的副本”,就足以向来从本地存款和储蓄设备而不是长距离服务器提取该文书档案了。

  3. 数码缓存有下列优点

    削减了冗余的多少传输,节省客户端流量耗费
    消除服务器带宽瓶颈的标题,服务器可以省去出越来越多的带宽
    跌落了对服务器的财富消耗和平运动作必要
    下跌了是因为中远距离而招致的加载延时

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

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

6、http基本优化

网址质量优化最要害的正是要缩减HTTP请求及每一回响应中剧情的长短。能够从三番五次进程中的下列方面加以思量:

壹、域名解析

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

2、创制连接

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

三、发送请求
力图收缩请求次数——合理设置Expires时间、财富集合

肆、等待响应
增强制性劳动教育动器端运营速度——进步数据运算及查询速度

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

七、安全的HTTP协议

  1. HTTP协议本质上属于“明文字传递输”,恐怕被窃听和曲解,政坛、银行等机密应用供给要求“安全版本的HTTP”:http协议私下认可端口80

  2. HTTPS协议将信息发送给TCP层从前,先交由了三个安全层(由SSL或TLS协议落实),安全层负责对新闻进行加密息争密操作。https协议默许端口4肆3

发表评论

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

网站地图xml地图