英迈思网站建设,枝江市住房和城乡建设局网站,新型网络营销方式,小生意是做网站还是公众号说明#xff1a;网络基础2讲解的是应用层的典型协议#xff0c; 通过对于典型协议的理解#xff0c;来体会数据的网络传输的软件层面的流程与原理。 面试中网络通信相关问题占了很大的比重#xff0c;而网络通信相关的问题大多都集中在网络基础2这个单元中 下面是应用层的位… 说明网络基础2讲解的是应用层的典型协议 通过对于典型协议的理解来体会数据的网络传输的软件层面的流程与原理。 面试中网络通信相关问题占了很大的比重而网络通信相关的问题大多都集中在网络基础2这个单元中 下面是应用层的位置 应用层: 自定制协议 (私有协议) HTTP协议; 传输层: UDP TCP协议 1.应用层 应用层: 负责应用程序之间的数据沟通 应用层协议其实是面向程序员的协议因为应用程序是程序员写的因此应用程序之间如何沟通是程序员定的。 程序员自己定理的程序沟通的数据格式约定而针对某些场景大佬们定制出的协议大家觉得非常好都用了这种协议这种协议叫做知名协议 自定制协议: 程序员自己定义的程序沟通的数据格式约定 序列化:在网络传输或者数据的持久化存储时将多个数据对象按照指定格式组织成为一个二进制数据传进行传输或持久化的过程 反序列化: 对二进制数据传按照指定格式进行解析得到各个数据对象的过程 程序员设计自定制协议的时候需要考虑的要素有哪些? 1.传输性能:定制一个协议传输的数据尽可能短小传输数据的时候才能尽可能的快。 2.解析性能:传输多个数据对象的时候需要进行序列化对方拿到数据后要进行反序列化解析性能指得就是序列化和反序列化要足够快 3.调试便捷性:讨论的更多的式对于程序员的可见性可识别性。 举例网络版计算器 一个客户端要进行两个数据的运算运算的过程并不自己进行而是将数据传输给服务器让服务器运算并返回结果。 数学运算: 11 22 需要向服务器传输的数据对象有三个: 第一个数字第二个数字运算符 协议如何定制: 方案1: 1122字符串传输 解析过程:获取数字字符遇到其他字符截止取出第一个数字特殊字符为运算符剩下的获取数字字符 方案2:解析过程: 先以;进行字符串分割前两个字符串转换为数字最后是运算符11;22;; 方案3:二进制序列化将三个对象的二进制数据分别放到一整块内存的指定位置最终按照位置进行解析即可 因为网络传输是跨主机的传输因此结构体序列化需要考虑 结构体内存对齐问题 传输的数据字节序问题 2.http协议 HTTP协议: 互联网公司中使用最多的协议。 认识: HTTP--超文本传输协议 (最早期就是为用来传输web网页而设计的) 特性: 1.基于字符串明文传输的调试便捷性高 2.是一种简单的请求-响应协议(早期是短链接-一次请求-响应结束就关闭) 基于TCP协议传输安全可靠。 3.请求格式 格式:想要使用一个协议用的好就必须去了解他的格式了解协议中每一个字段的功能. 1.请求行:请求中的第一行主要对请求进行关键性描述 请求行中的内容分为三部分以空格作为间隔请求行以\n \r作为结尾(请求行其实刚好就是一行数据) 第一部分: 请求方法:多种多样描述不同的请求目的 GET:向服务器请求一个网页实体资源请求中没有正文但是也可以向服务器提交数据提交的数据在URL中(安全性低长度受限 POST: 向服务器提交表单数据请求中有正文 HEAD:面试中经常会问GET和HEAD有什么区别--目的与GET类似但是不同的是实际的响应中不要实体资源只要响应头部 PUT: 更新服务器上的资源 DELETE:删除服务器上的资源 ................ 第二部分: URL 第三部分: 协议版本 描述了当前请求所使用的HTTP协议版本不同的版本之间有功能支持力度上的差异 HTTP协议的版本迭代 HTTP/0.9--- 0.9版本是一个不成熟的版本只能使用GET获取网页而且也没有当前的完善的协议格式 HTTP/1.0---1.0版本完善了协议格式新增支持了更多的请求方法:GETHEADPOST并且有了缓存的控制以及流媒体的传输 HTTP/1.1---1.1版本是当前用的最多的版本新增支持了更多的请求方法:PUT, DELETE ....针对当前的网络觉得以前的通信效率太低了: 支持了长连接对缓存的管理更加精细了 长连接与短链接 短链接:建立TCP连接-》发送请求-》接收响应-》关闭连接 每次要获取一个资源都要重新建立连接关闭连接效率很低 长连接(管线化传输): 长连接: 建立连接-》发送请求-》接收响应-》发送请求-》接收响应。。。。-》关闭连接 长连接管线化传输:建立连接-》发送请求-》接收响应-》发送请求1-》发送请求2-》接收响应1-》接收响应2-》关闭连接 HTTP/1.1版本的迭代更多的是对传输效率的改进 HTTP/2这个版本是一个大跃进因为并不向前兼容 1.使用二进制传输以前是名文字符串 2.不用重复每次请求传输相同的头部字段 3.长连接的一些改进不需要按序响应解决了队头阻塞问题 4.主动推送功能的加入服务器响应数据的时候可以主动响应依赖数据 2.请求头部:一个个的键值对对于请求的附加描述以及对正文的描过 请求头部: 由的键值对组成key: val r nkey:针对请求的些附加描述以及对于请求正文的描述valrin 请求头部 (只会在请求中出现的头部字段描述请求) User-AgentHost,Referer.... 正文头部 (在请求与响应中都会出现主要是对于正文的描述) Content-Length:129 用于描述正文长度 Content-Type: application/json;charsetUTF-8 用于描述正文的数据类型决定了对方如何解析处理正文 响应头部(只会在响应中出现的头部字段描述响应) Location: http://baidu.com 用于描述重定向 通用头部(在请求与响应中都会出现属于对于本次通信或者连接的一些描述) Connection: keep-alive/close : 用于描述当前的连接使用的是短链接还是长连接 3.空行: 间隔头部与正文 空行: \rn 主要用于间隔HTTP头部与正文 主要是实现在HTTP协议解析时先接收一个完整的HTTP协议头部根据其中的Content-Length确定正文长度,然后根据正文长度取出指定长度的正文则刚好能够完整的获取到一条HTTP请求。 4.正文:提交给服务器的数据 正文: 提交给服务器的数据类型格式通过Content-Type描述 4.响应格式 响应格式:响应行响应头部空行正文 响应行: 协议版本 状态码 状态码描述\r\n --- HTTP/1.1 200 0K\r\n 状态码: 用于明确直接的向客户端表示本次请求的处理结果 1xx:继续请求或者协议切换101---协议切换 2xx:请求已经成功处理了200---成功处理:206---区间内容处理成功 3xx:表示请求进行了重定向 301---永久重定向 302---临时重定向: 303-see other 304--not modifvy 重定向:把一个请求重定向到其他链接。示例:一个请求要请求的资源被移动到了其他位置。但是想要依然保持原链接有效301.302,303这种要跟 Location响应头字段搭配使用Location字段用于指定的重定向的新链接 Location: htp:/baidu.com 4xx:表示客户端的错误 400--bad request404--Not Found 请求的资源不存在 5xx: 表示服务器的错误 500--服务器内部错误 502--bad gateway,代理服务器连接服务器失败; 504-gateway timeout--代理请求超时 状态码描述:没有实际的功能性意义给程序员看的,是对于状态码的文字描述信息 响应头部: Connction Location 。。。。 空行间隔头部与正文 5.Cookie 头部字段中的 Cookie (请求头) Set-Cookie (响应头) :http是一个简单的请求-响应协议不管是短链接还是长连接连接都不是一直持续的。 这样就会存在一个问题: 例如在购物网站购物因为连接不是持续的导致每次买东西都要重新建立连接进行登录因此就需要不管连接是不是原来的但是都要能够区分出用户为了解决这个问题就提出了一个方案: cookie机制 cookie:小饼干cookie是一种信息缓存机制将一些信息保存到客户端主机上等下一次请求服务器的时候读取出来发送给服务器 Set-Cookie (响应头) :告诉客户端那些信息需要保存起来保存到客户端本地 6.session会话 session: 会话就是为客户端与服务器的通信建立一个会话将会话重要内容保存起来,会话内容被保存在服务器上通过cookie只需要传输Session id 即可这样做有个好处不会在网络上传输用户的敏感信息 session会话机制是在cookie的基础上避免了敏感信息的传输提高了安全性 cookie和session的区别: 1.cookie是将关键信息保存在客户端本地每次通信前发送给服务器 2. session是将会话信息保存在服务器通过session id进行cookie传输保护隐私性 本质上来说这两种还是有一些安全隐患的: cookie篡改 --- 解决方案: token 7.HTTPS协议 HTTPS协议:在HTTP协议的基础上进行了一层加密因此HTTPS不是一个新的协议而是一个加密后的HTTP协议。 加密: SSL/TLS加密 为什么要加密: 身份验证:小明和小红是小学同学小明有一天给小红表白我喜欢你小红说我也喜欢你你先给我打200块行不行过了一段时间过年了小明和小红都回村子了小明去找小红小红说我的gg早都已经被盗了。在网络通信的时候我们都必须明确知道对方是谁并且还要能够验证现在通信的就是这个人而且还要防止对方赖账 解决方案第三方权威机构CA认证 8.加密传输 对传输的数据进行加密 通信双方进行传输加密需要进行密钥的协商 对称加密数据的加密和解密使用的是相同的密钥 缺点进行密钥协商的时候容易被劫持加密形同虚设 优点加解密的效率高 非对称加密数据加密和解密使用的密钥是不一样的 缺点加解密效率较低 优点安全不怕劫持 思想通过指定的算法RSA可以生成一对密钥公钥私钥使用公钥进行数据加密加密后的数据只能使用私钥进行解密 流程连接成功后将自己的公钥发送对方对方使用公钥加密要传输的数据这个数据就只能用私钥解密 混合加密 思想假设是客户端对服务器进行验证 服务器生成一对非对称密钥连接成功建立通信前将公钥发送客户端 客户端收到后使用公钥加密一个随机数A以及自己支持的对称加密算法 服务器收到后使用私钥进行解密得到随机数A以及对方的对称加密算法 服务器向客户端发送一个随机数B以及自己支持的对称加密算法 客户端和服务器各自根据两个随机数以及支持的对称加密算法计算出一个对称密钥。 e.往后的通信使用对称密钥进行加密解密 在实际的SSL加密中身份验证和加密传输是整合在一起的。CA证书中包含了更多的信息: 通信方的公钥机构信息证书颁发机构信息失效时间.....整体流程: 单向验证以服务端验证为主 1.服务器自己生成一对密钥拿着公钥去第三方权威机构颁发证书 2.权威机构根据服务器的公钥生成一个CA证书给服务器 3.客户端与服务器建立连接后通信前服务器先将CA证书发送给客户端 4.客户端收到CA证书进行解析验证权威机构是否自己信任在权威机构验证对方身份解析出公钥 5.客户端生成一个随机数使用公对随机数加密算法进行加密发送给服务器 6.服务器收到数据后使用私钥进行解密生成一个自己的随机数将随机数和加密算法发送给客户端 7.客户端收到数据后客户端和服务器都有对方的随机数和自己的随机数以及加密算法进行计算得到一个对称密钥 8.往后通信使用对称密钥进行传输加密
文章转载自: http://www.morning.fwblh.cn.gov.cn.fwblh.cn http://www.morning.msgnx.cn.gov.cn.msgnx.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.pmhln.cn.gov.cn.pmhln.cn http://www.morning.kdfqx.cn.gov.cn.kdfqx.cn http://www.morning.sjjtz.cn.gov.cn.sjjtz.cn http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn http://www.morning.mlbdr.cn.gov.cn.mlbdr.cn http://www.morning.wmfmj.cn.gov.cn.wmfmj.cn http://www.morning.njdtq.cn.gov.cn.njdtq.cn http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn http://www.morning.bylzr.cn.gov.cn.bylzr.cn http://www.morning.ldcrh.cn.gov.cn.ldcrh.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn http://www.morning.rsjng.cn.gov.cn.rsjng.cn http://www.morning.bnrnb.cn.gov.cn.bnrnb.cn http://www.morning.lslin.com.gov.cn.lslin.com http://www.morning.xrftt.cn.gov.cn.xrftt.cn http://www.morning.xhddb.cn.gov.cn.xhddb.cn http://www.morning.rxnr.cn.gov.cn.rxnr.cn http://www.morning.pfbx.cn.gov.cn.pfbx.cn http://www.morning.bpmdr.cn.gov.cn.bpmdr.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.lmhh.cn.gov.cn.lmhh.cn http://www.morning.brps.cn.gov.cn.brps.cn http://www.morning.nsncq.cn.gov.cn.nsncq.cn http://www.morning.fqcdh.cn.gov.cn.fqcdh.cn http://www.morning.dwmmf.cn.gov.cn.dwmmf.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.gychx.cn.gov.cn.gychx.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn http://www.morning.playmi.cn.gov.cn.playmi.cn http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn http://www.morning.jikuxy.com.gov.cn.jikuxy.com http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn http://www.morning.rcww.cn.gov.cn.rcww.cn http://www.morning.wqfrd.cn.gov.cn.wqfrd.cn http://www.morning.tdxnz.cn.gov.cn.tdxnz.cn http://www.morning.lqklf.cn.gov.cn.lqklf.cn http://www.morning.fxzw.cn.gov.cn.fxzw.cn http://www.morning.zknxh.cn.gov.cn.zknxh.cn http://www.morning.qwhbk.cn.gov.cn.qwhbk.cn http://www.morning.smhtg.cn.gov.cn.smhtg.cn http://www.morning.wjqyt.cn.gov.cn.wjqyt.cn http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn http://www.morning.pakistantractors.com.gov.cn.pakistantractors.com http://www.morning.xpwdf.cn.gov.cn.xpwdf.cn http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn http://www.morning.zpqk.cn.gov.cn.zpqk.cn http://www.morning.jtybl.cn.gov.cn.jtybl.cn http://www.morning.qxlhj.cn.gov.cn.qxlhj.cn http://www.morning.tbqdm.cn.gov.cn.tbqdm.cn http://www.morning.pmptm.cn.gov.cn.pmptm.cn http://www.morning.njdtq.cn.gov.cn.njdtq.cn http://www.morning.klrpm.cn.gov.cn.klrpm.cn http://www.morning.yrjkp.cn.gov.cn.yrjkp.cn http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn http://www.morning.fmtfj.cn.gov.cn.fmtfj.cn http://www.morning.jlrym.cn.gov.cn.jlrym.cn http://www.morning.dsmwy.cn.gov.cn.dsmwy.cn http://www.morning.dytqf.cn.gov.cn.dytqf.cn http://www.morning.lsfzq.cn.gov.cn.lsfzq.cn http://www.morning.gqwpl.cn.gov.cn.gqwpl.cn http://www.morning.amonr.com.gov.cn.amonr.com http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn http://www.morning.dbjyb.cn.gov.cn.dbjyb.cn http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn http://www.morning.rnmdp.cn.gov.cn.rnmdp.cn http://www.morning.qnxzx.cn.gov.cn.qnxzx.cn http://www.morning.pqsys.cn.gov.cn.pqsys.cn http://www.morning.hbdqf.cn.gov.cn.hbdqf.cn http://www.morning.jfcbs.cn.gov.cn.jfcbs.cn http://www.morning.lmknf.cn.gov.cn.lmknf.cn http://www.morning.qxycf.cn.gov.cn.qxycf.cn http://www.morning.hnhsym.cn.gov.cn.hnhsym.cn