应用层中除了HTTP,你还知道点啥?

前言

Github连接地址,是我大三上考试前和朋友一块儿作的一些笔记,固然还有其余的学习内容,以后还会加入一些其余课程的学习内容。git

思惟导图

网络体系结构模型

上一篇文章中咱们已经介绍过了网络的体系结构模型中的TCP层,这一次咱们要讲的就是应用层,他给咱们带来的用途到底有哪些呢?我想若是没作过了解的朋友们除了http也就可能只知道https了。github

应用层

其实这是一个基层,为何说是基层,由于他是一个专门为咱们的开发而准备的一个平台,httphttpsDNSSMTP等一系列的协议都是在这一层创建的。面试

http

  • 请求行:放置请求方法(post、get。。。)、路径URL、使用的http版本、以及资源路径的位置。
  • 请求头:内部放置的是报文的部分信息。(形式:header(字段名):value(值))另外面试中的断点续传其实就是对请求头中添加Range和Content-Range来完成的。
  • 请求体:发送给服务器的数据信息。(User数据啊之类的)

http其实分为不少的版本,version1.01.1以及2vim

三大版本的区别

  1. 带不带流水线:version 2存在。
  2. 是否为持久化链接:version 1.12存在。

第一个问题:什么叫作流水线?浏览器

图的意思就是为了说明,数据传输只能发送一条,仍是一次性可以发送多条数据的不一样。这种方案须要思考的问题,就是一个数据包的分类,每一个返回的数据包对应是什么数据。安全

第一个问题:什么叫作持久化链接?服务器

图的意思就是为了说明,一次TCP链接只进行一次的数据传输,仍是一次TCP链接可以进行屡次数据传输。这种方案须要思考的问题,就是服务器的压力,由于过多的TCP链接进行了保持的话,那么形成的问题就是服务器崩溃。网络

https和http的区别

其实二者大体内容上来讲是相同,做出的升级实际上是一个安全性方面。负载均衡

为何要作安全性的升级呢? 看图说话好了,下图是经过wireshark软件对数据的一个抓包。分布式

加密后 加密前

这仍是通常的数据,若是咱们数据里掺杂了咱们的我的信息,好比说帐号密码等等,被抓去以后,形成的结果就是灾难性的。而这就是https作了安全性处理带来的好处。害处天然也是存在的,就是须要加密和解密的时间,可是这个削弱程度已经彻底的被现代社会的高速处理能力给弱化了。

DNS

DNS这个模块上,考察的点通常都是工做流程的问题,因此重点作一个讲解。

首先要知道DNS是干什么的,官方语言是将域名地址转化为IP地址。那俗话讲就是讲www.baidu.com转化为14.215.177.39。玩过云服务器的朋友应该知道,不论是哪家公司给你的公网地址都是一个IP地址。

那为何不直接用IP地址来访问呢?

这个问题其实有挺多缘由的:

  1. 好记。 生硬的数字,没有他的实际意义,若是我告诉他的IP地址和域名地址,你会记住哪一个?这显然是域名地址。
  2. 分布式中的应用。 我记得好久之前听过度布式是一个轮询的请求方式,由于网络中IP是惟一的,可是和域名关联后,一个域名地址能够对应多个IP地址,你又是经过域名方式请求,也就作到了负载均衡。

请求过程详解

通常来讲这种事件的发起人是咱们的本地客户机,咱们经过浏览器输入了www.baidu.com,那么这个时候他的探索历程开始了。

  1. 先搜索本地的hosts文件,这里能够比较清楚的看到一些IP地址对应的域名地址 (命令为:sudo vim /etc/hosts)
  2. 若是本地不存在,那咱们就要改变策略,向本地域名服务器发出请求。好久之前我小时候玩qq的时候其实就是能够直接查看附近区域的IP地址存在哪些的。存在则直接返回,不存在,那咱们只好继续往上找了。
  3. 这里须要注意,他是直接向根DNS服务器发出请求的,若是根DNS服务器中,咱们一样的仍是找不到,那咱们才有开始下面的步骤,向下级服务器发出查找请求。
  4. 下级服务器不断向下查询,直到找到了对应的IP地址后,就将咱们的数据进行一个返回,自此咱们就获得了咱们咱们须要的IP地址。

总结

其实应用层还有不少不少的协议好比FTP(文件传输协议)这种专门用于文件传输的协议,SMTP(简单邮件协议)这种用于邮件发送的协议。这一类的协议他们基于的都是TCP层给出的协议做为基础的。

DNS基于的就是UDP协议完成,SMTP则是基于TCP的协议,这是由于他们对应用场景的思考,若是邮件没发到,那么跟没发没有区别,而DNS这种若是每次都要经过请求创建服务,彻底比不上UDP直接发数据快的。

以上就是个人学习成果,若是有什么我没有思考到的地方或是文章内存在错误,欢迎与我分享。


相关文章推荐:

TCP层的那些知识,你掌握了多少?

Android必知必会的四大组件 -- ContentProvider篇

Android必知必会的四大组件 -- Activity篇

相关文章
相关标签/搜索