计算机网络

计算机网络

五层架构

中和Osi和TCP/IP的优势,采用一种只有五层协议体系结构,自上而下分别是:浏览器

  1. 应用层:提供应用接口,为用户直接提供各类网络服务。缓存

    ​ 常见协议有:域名系统DNS,支持万维网的http协议,支持电子邮件的SMTP协议安全

    http协议

    底层协议为tcp服务器

    TCP协议能够对上层网络提供接口,使上层网络数据的传输创建在“无差异”的网络之上。cookie

    TCP是底层通信协议,定义的是数据传输和链接方式的规范
    HTTP是应用层协议,定义的是传输数据的内容的规范网络

    http协议与tcp协议相互关系session

    http是应用层,而tcp是传输层,http是基于tcp链接基础之上的。简而言之,tcp是单纯创建链接,不涉及请求的数据以及简单传输,而http是用来收发数据的。架构

    1.客户端发送http请求给服务端,请求包括请求头,请求内容tcp

    ​ 请求头包含:1.请求方法get/post,请求url,http版本post

    2.请求的数据

    ​ 3.是否有cookies以及缓存

    ​ 请求体:即请求的内容

    2.服务端收到http请求,返回http响应

    ​ 响应头包含:cookies或sessions,状态码,内容大小等

    3.客户端收到之后,由浏览器完成对数据的渲染,包括执行js脚本

  2. 传输层:定义传输数据的协议端口号,以及流控和差错校验。四层交换机
    协议有 :TCP UDP,数据包一旦离开网卡即进入网络传输层

  3. 网络层:为数据包选择路由,进行逻辑地址寻址,路由器

    协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP

  4. 数据链路层:传输有地址的帧以及错误检测功能,交换机,网卡

    协议有:SLIP,CSLIP,PPP,ARP,RARP,MTU

  5. 物理层:以二进制数据形式在物理媒体上传输数据,中继器

    TCP三次握手与四次挥手

    三次握手目的是双方确认各自数据发送与接收正常,创建可靠的通信

    第一次握手,服务端可以确认C发送正常,本身接受正常

    第二次握手,客户端确认本身发送,接收正常,S发送,接受正常;服务端可以确认C发送正常,本身接受正常

    第三次握手,双方各自确认本身发送,接受正常,缺一不可

    四次挥手

    客户端:向服务端发送断开链接信息

    服务端:收到客户端发出的断开链接信息,并响应,此时处于半关闭状态

    服务端:向客户端发送断开链接信息

    客户端:对服务端断开链接信息进行响应

    TCP与UDP区别

    ​ TCP是面向链接的,经过校验和,序号标识,重发控制等进行可靠的传输,保证数据的完整性,而UDP不须要创建链接,不可以保证可靠交付。可是UDP具备实时性,工做过效率高,占用系统资源少,适应于对高速传输以及实时性有较高要求的广播通讯。

    ​ 此外TCP链接是点到点的,而UDP支持一对多,多对多。

打开网页过程

  1. 首先进行DNS解析

    输入www.baidu.com,首先找本地hosts文件,查找是否有百度对应的ip地址,有即返回ip,而后经过80端口访问百度的服务器,若没有,则经过DNS服务器找对应的域名与ip的对应关系,即DNS解析过程

  2. 而后创建TCP链接

  3. 发送http请求

  4. 服务器处理请求并返回http报文

  5. 浏览器解析渲染页面

  6. 链接结束

各类协议与http协议的关系

​ 理解概述:

​ 首先发给DNS服务器,进行域名解析,获得IP地址后生成针对目标Web服务器的HTTP请求报文,而后报文由TCP协议负责传输,为了方便通讯,HTTP请求报文被分为报文段,而后每一个报文段可靠的传输给对方,而后报文段由IP层负责一边中转一遍传送,服务器收到报文段后重组报文段,而后由应用层的HTTP协议处理请求的内容,请求的结果以 一样的方式进行回传。

http长链接,短链接

  1. http/1.0:默认使用短链接

    客户端与服务器每进行一次http操做,就创建一次链接,任务结束就中断链接

  2. http/1.1起:默认使用长链接,保持链接特性

    当打开网页以后,客户端与服务端创建的tcp链接不会中断,当再次向服务器发送请求,会继续使用这条链接,固然也不会无限保持链接,有一个保持时间,能够设定在服务器软件中。

http为无状态协议,如何保存用户状态

​ session机制能够保存用户状态,好比向购物车加入商品,系统并不知道是哪一个用户操做的,由于http是无状态的,服务端给特定的用户建立特定的session就能够标识这个用户并跟踪这个用户。(如何实现跟踪,在cookie中附加一个session ID)

​ Cookie被禁用怎么办?利用URL重写把session ID直接附加在url后面。

cookie与session

​ cookie保存用户信息,将数据保存在客户端,单个cookie不大于4k,cookie数量有限制,会话cookie与持久cookie,若是使用 Cookie 的一些敏感信息不要写入 Cookie 中,最好能将 Cookie 信息加密而后使用到的时候再去服务器端解密。

​ session记录用户状态,数据保存在服务器端,安全性更高,与服务器内存有关,session过多会增长服务器压力。

URI与URL的区别

uri:统一资源标识符,能够惟一标识一个资源,身份证

url:统一资源定位符,能够提供该资源的路径,家庭住址

http与https区别

  1. 默认端口号不一样,http为80端口,https为443端口

  2. http基于tcp,传输内容为明文,不安全

  3. https是创建在ssl之上的http协议,所传输的内容都通过加密,但比http耗费更多的服务器资源,HTTPS链接缓存不如HTTP高效。同时ssl证书比较烧钱。握手阶段比较耗时,如非必要,没有理由牺牲用户体验。

    https工做原理:

    1. 客户端经过https的url向服务端发起请求
    2. 服务端收到请求后将网站证书信息(包含公钥)返回给客户端
    3. 客户端与服务端协商ssl链接的安全等级
    4. 在此基础上,客户端创建会话密钥,利用网站公钥将会话密钥加密,并传给网站
    5. 服务器利用本身的私钥对会话密钥进行解密
    6. 服务器利用会话密钥加密与客户端之间的通讯

get与post区别

  1. 使用get请求时,参数在url中显示,而post不会

  2. post数据传输量较大,可达到2M,而get因为url长度限制,只能传递1024字节

  3. get方式请求的数据会被浏览器存入缓存,某种状况下会带来安全问题,而post相对会避免这种问题

相关文章
相关标签/搜索