网络部分

为什么要分层?

参考

  • 易于实现和标准化,各层独立,就可以把大问题分割成多个小问题,利于实现;
  • 灵活性好:如果某一层发生变化,只要接口不变,不会影响其他层;
  • 分层后,用户只关心用到的应用层,其他层用户可以复用;
  • 各层之间相互独立:高层不需要知道底层的功能是采取硬件来实现的,只需要知道通过底层的接口来获得所需要的服务。

OSI七层模型是理论模型,一般用于理论研究,他的分层有些冗余,实际应用,选择TCP/IP的四层模型

DNS

DNS域名解析过程

DNS 协议运行在 UDP 协议之上,使用端口号 53。
在这里插入图片描述
浏览器先检查自身缓存中有没有被解析过这个域名对应的 ip 地址;
② 如果浏览器缓存没有命中,浏览器会检查操作系统缓存中有没有对应的已解析过的结果。在 windows 中可通过 c 盘里 hosts 文件来设置;
③ 还没命中,请求本地域名服务器来解析这个域名,一般都会在本地域名服务器找到;
④ 本地域名服务器没有命中,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,则去根域名服务器请求解析;
⑤ 根域名服务器返回给本地域名服务器一个所查询域的主域名服务器
⑥ 本地域名服务器向主域名服务器发送请求
⑦ 接受请求的主域名服务器查找并返回这个域名对应的域名服务器的地址;
⑧ 域名服务器根据映射关系找到 ip 地址,返回给本地域名服务器;
⑨ 本地域名服务器缓存这个结果;
⑩ 本地域名服务器将该结果返回给用户;

如果本地域名服务器用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环

DNS解析失败怎么办

参考参考

  • nslookup来判断是否真的是DNS解析故障
  • 更换本地域名服务器地址
    114.114.114.114是国内移动、电信和联通通用的DNS,解析成功率相对来说更高,国内用户使用的比较多,速度相对快、稳定,是国内用户上网常用的DNS。
    8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。
    目前国内有不少的免费、安全而且无毒的DNS,常见的如百度提供的180.76.76.76、阿里提供的223.5.5.5和223.6.6.6
  • 清除DNS缓存信息 ipconfig/flushdns

DNS用的是TCP协议还是UDP协议

DNS占用53号端口,同时使用TCP和UDP协议。DNS在区域传输的时候使用TCP协议,其他时候使用UDP协议。参考

  • DNS区域传输的时候使用TCP协议:

    1.辅域名服务器会定时(一般3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,会执行一次区域传送,进行数据同步。区域传送使用TCP而不是UDP,因为数据同步传送的数据量比一个请求应答的数据量要多得多。

    2.TCP是一种可靠连接,保证了数据的准确性。

  • 域名解析时使用UDP协议:

    1.客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。

    2.不用经过三次握手,这样DNS服务器负载更低,响应更快

    3.理论上说,客户端也可以指定向DNS服务器查询时用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。

HTTP

HTTP请求/响应报文结构

在这里插入图片描述
(1)HTTP请求报文由3部分组成(请求行+请求头+请求体):

  • 请求行:
    ①是请求方法,PUT、DELETE、 POST、GET、HEAD、OPTIONS、TRACE。
    ②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。
    ③是协议名称及版本号

(2)HTTP的响应报文也由三部分组成(响应行+响应头+响应体)

  • 响应行: ①报文协议及版本; ②状态码及状态描述;
  • 响应头: ③响应报文头,也是由多个属性组成;
  • 响应体: ④响应报文体,即我们真正要的“干货”

HTTP常见的状态码

  • 1XX 信息码,服务器收到请求,需要请求者继续执行操作;
  • 2XX 成功码,操作被成功接收并处理;
  • 3XX 重定向,需要进一步的操作以完成请求;
  • 4XX 客户端错误,请求包含语法错误或无法完成请求;
  • 5XX 服务器错误,服务器在处理请求的过程中发生了错误

200 – 请求成功
301 – 资源(网页等)被永久转移到其它URL
400 – 客户端请求的语法错误,服务器无法理解
404 – 请求的资源(网页等)不存在
500 – 内部服务器错误
502Bad Gateway充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
504Gateway Time-out充当网关或代理的服务器,未及时从远端服务器获取请求

post、get请求区别

GET 和 POST 本质上就是 TCP 链接,并无差别。但是由于 HTTP 的规定浏览器/服务器的限制,导致他们在应用过程中体现出一些不同;(HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。)

  • HTTP规定,当执行GET请求的时候,把传送的数据放在url中,以方便记录。
  • 如果是POST请求,数据放在请求体里。如果你用GET服务,在request body偷偷藏了数据,不同服务器的处理方式也是不同的,有些服务器会帮你卸货,读出数据,有些服务器直接忽略。

区别

(0)get产生一个TCP 数据包,post 产生两个 TCP 数据包;

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
!并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

(1)安全性:Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。
(2) 传送数据量:Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。

url长度根据浏览器及服务器的不同而有不同限制。 若要支持IE的话,最大的长度为2083字符。

(3)对数据类型的限制:Get只接受ASCII字符;而Post没有限制。
(4)执行效率:Get执行效率却比Post方法好。Get是form提交的默认方法。
(5)历史:Get 参数保留在浏览器历史中,而 post 参数不会保留在浏览器历史中;

HTTP和HTTPS

  • HTTP:超文本传输协议,提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,因此是不安全的。
  • HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能。很好的解决了解决了http的三个缺点(被监听、被篡改、被伪装)
  • HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。

HTTPS工作方式

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。参考
在这里插入图片描述

(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送给客户端。
(3)客户端对服务器的证书进行验证,并抽取服务器的公钥。
(4)客户端建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。

HTTPS 和 HTTP 的区别

  • https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
  • http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协议。
  • http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是 443
  • http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值