0.1-计算机网络

http://www.cnblogs.com/maybe2030/p/4781555.html

三次握手四次挥手

image.png

三次握手:

  • client发送连接请求syn
  • server接受连接后回复syn+ack
  • client 收到ack后也向server发送ack

四次挥手:

  • (假设)client发起中断连接请求,也就是发送FIN报文.
    server端接到FIN后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,这个时候Client端就进入FIN_WAIT1状态
  • server发送ack,'你的请求我收到了,但是我还没准备好,请继续你等我的消息',
  • client收到ack, 进入FIN_WAIT2状态,继续等待Server端的FIN报文。
  • server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"
  • client收到fin后回复ack, (不相信网络,怕Server端不知道要关闭),发送ack后进入TIME_WAIT状态
  • Server端收到ACK后,"就知道可以断开连接了"
  • Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

http2.0与http1

https://imququ.com/post/http2-resource.html

多路复用 (Multiplexing)

多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息


image.png
二进制分帧

在 应用层(HTTP/2)和传输层(TCP or UDP)之间增加一个二进制分帧层。
HTTP/2 会将所有传输的信息分割为更小的消息和帧(frame),并对它们采用二进制格式的编码 。
改进传输性能,实现低延迟和高吞吐量。

首部压缩
服务端推送

在客户端请求之前发送数据的机制

https与http区别

https://juejin.im/entry/58d7635e5c497d0057fae036

基本概念

HTTP:超文本传输协议,被用于在Web浏览器和网站服务器之间传递信息。传输的数据都是未加密的,也就是明文的。
HTTPS:HTTP的安全版,即HTTP下加入SSL层。可进行加密传输身份认证的网络协议。

区别
  • https协议需要到ca申请证书,需要一定费用。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • 端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
HTTPS原理

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
证书其实就是一对公钥和私钥
过程:

  • 客户端发起HTTPS请求
    用户在浏览器里输入一个https网址,然后连接到server的443端口。
  • 传送证书(公钥)
  • 客户端解析证书
    客户端的TLS来完成
    首先会验证公钥是否有效;
    如果证书没有问题,那么就生成一个随机值,用证书对该随机值进行加密。
  • 传送加密信息
    目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
  • 服务段解密信息
    服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密(将信息和私钥通过某种算法混合在一起)
  • 传输加密后的信息
  • 客户端解密信息
服务器资源使用

HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包;
HTTPS除了TCP的三个包,还要加上ssl握手需要的9个包,所以一共是12个包。

HTTPS优点
  • 安全
  • 谷歌搜索排名高
HTTPS缺点
  • 会使页面的加载时间延长近50%,握手阶段比较费时,增加10%到20%的耗电,影响缓存,增加数据开销和功耗。
  • HTTPS连接服务器端资源占用高很多
  • HTTPS连接缓存不如HTTP高效,大流量网站如非必要也不会采用,流量成本太高
  • 加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。
  • SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
  • SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
  • SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗

网络层次划分

OSI七层

物理层,数据链路层,网络层,传输层,应用层

TCP/IP五层

物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

输入url过程

在浏览器中输入www.baidu.com 后执行的全部过程:

  • 客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。
    客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层
  • 传输层,把HTTP会话请求分成报文段,添加源和目的端口
    如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。
  • 网络层,不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器。
  • 链路层,通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

ajax请求过程

我理解Ajax 是一种异步请求数据的一种技术,对于改善用户的体验和程序的性能很有帮助
(1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.
(2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.
(3)设置响应HTTP请求状态变化的函数.
(4)发送HTTP请求.
(5)获取异步调用返回的数据.
(6)使用JavaScript和DOM实现刷新

    var xmlHttp = new XMLHttpRequest();

    xmlHttp.open('GET','demo.php','true');

    xmlHttp.send()

    xmlHttp.onreadystatechange = function(){

        if(xmlHttp.readyState === 4 & xmlHttp.status === 200){

        }

    }

细节

  • xmlhttp.open(method,url,async);: 创建一个新的HTTP请求
    • method:请求的类型;GET 或 POST
    • url:文件在服务器上的位置,相对位置或绝对位置
    • async: true(异步)或 false(同步)
      True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。
  • send(string)方法post请求时才使用
xmlhttp.send("fname=Herry&lname=Ford");
  • 服务器返回数据
    responseText 获得字符串形式的响应数据。
    responseXML 获得XML 形式的响应数据。

  • 异步处理

xmlhttp.onreadystatechange=function () {//接收到服务端响应时触发
      if(xmlhttp.readyState==4&&xmlhttp.status==200){
            document.getElementById("mydiv").innerHTML=xmlhttp.responseText;
       }
 }

xmlhttp.readyState: 请求状态,从0 到 4 发生变化

  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪
    xmlhttp.status:响应状态码
  • 304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)。
  • 403 (禁止) 服务器拒绝请求。
  • 408 (请求超时) 服务器等候请求时发生超时。
  • 500 (服务器内部错误) 服务器遇到错误,无法完成请求。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容