第六章 应用层(DNS和http协议详解)

    序言html

       这是计算机网络基础的最后一篇博文了,大致的从物理层到最上层的应用层作了一个大概的了解,花了也有快1个月的时间了,在本章结尾会给大家我学习该课程的视频资料,我但愿能帮到全部想学习想提升本身技术的同窗,我看到不少厉害的的博客的文章都被锁了,我但愿高手度可以帮助刚成长而且想努力提升技术的人。因此等我之后牛逼了,确定会帮助哪些迷茫的人,由于本身曾经迷茫过,走了不少弯路。算法

                                                            --WZY浏览器

1、回顾缓存

        

    一、OSI体系结构分为7层:物理层、链路层、网路层、传输层、会话层、表示层、应用层。服务器

    二、TCP/IP的体系结构分为4层:网络接口层(物理层、链路层)、网际层(网络层IP)、传输层(UDP/TCP)、应用层(会话层、表示层、应用层)网络

    三、原理体系结构:物理层、链路层、网络层、传输层、应用层(会话层+表示层+应用层)学习

    我写文章的过程就是按照第三点这样的排列顺序,这三者的关系不要弄混淆了,其中的关系是spa

        OSI七层协议体系结构:优势:概念清楚,理论完整,缺点可是复杂而不实用.net

        TCP/IP协议族四层,缺点:太简单,但被普遍使用,计算机网络

      结合上面两个的优缺点,就有了5层协议的原理体系结构,即简洁又能把概念描述清楚。

    前面4层每层的做用和功能是什么?前面讲解的很是清楚

      物理层(一)    物理层(二)

      链路层(一)  链路层(二)  链路层(三)

      网络层(一)

      运输层(一)三次握手,四次挥手

 

2、应用层

   一、概念

      位于计算机网络体系结构的最上层,前面四层作的全部事情就是为了他服务,他也是设计和创建计算机网络的最终目的,通俗的讲,就是咱们开发的应用软件,就处于这一层,好比,QQ,浏览器访问网页,等等你看获得的应用软件都是在这一层,可是这些软件在运行的过程当中,也须要依靠一些特定的协议才能完成相应的功能,好比浏览器经过网址访问网页,其中是如何作到的,这就是咱们所要学习的东西。

   二、应用层中的应用软件分两种。客户/服务器P2P体系结构

       客户/服务器(client/server)

          这种类型,就是咱们很熟悉的客户端,服务器模型,客户端请求服务器,服务器响应客户端这样的一种方式进行“交流”

       P2P

          也称为对等体系结构。P2P至关于每一个人的电脑度能够当服务器,也能够当客户端,不仅仅限制于只能客户端访问服务器,你本身的计算机能够去访问别人的计算机上的内容,别的一样能够访问你计算机上的内容,这样达到一种共享的状态。

 

3、应用层协议的举例。

      一、DNS协议

          Domain Name System 域名系统。也能够叫作域名解析协议。在咱们在浏览器访问网页的时候,一般度是用咱们所熟悉的一连串有意义的英文字符标识,好比www.baidu.com、www.sohu.com等。 可是咱们学了前面的知识,计算机并非经过这些字符串去找到对应的计算机,而是经过32位的二进制,也就是咱们的IP地址来找。因此就有了DNS协议。他的做用就是将域名解析成对应的IP地址。由于让咱们人去记那些IP地址,很难记得住,因此就想办法让IP地址转变为了如今的域名,在进行访问的时候,只须要将域名解析为对应的IP地址就好了,这个域名也颇有讲究,其中分为好多层域名,是独一无二的。这里不细讲这个,只要咱们知道,域名经过DNS能找到对应的IP地址就好了

          DNS协议是如何工做的呢?

          一、经过域名访问网页

          二、计算机会先将域名发送到一个解析域名的服务器上

             2.1 在其服务器上有不少服务器,能解析各类各样的域名,好比有专门解析.org的,解析.com的,解析.net的。等等,最主要的有一个根域名服务器,

             2.2 域名解析(在服务器上查找IP地址)的过程有两种算法,迭代查询,递归查询。通常是两种查询的结合

             2.3 本机计算机找到其中一台解析域名的服务器(多是.com),若是没有找到对应的IP地址,那么就会去找根域名服务器,根域名服务器知道全部的子服务器,因此他确定知道该域名所对应的IP地址在那个子服务器中,因此告诉第一次查询的服务器要他去另外一台服务器上找,找到了,就将其返回给计算机,之后在有另外一台计算机也经过这个域名访问,那么第一台服务器会有原来的域名IP地址的缓存,就不用去找根服务器了。

          三、找到了,就能找到咱们要访问的服务器了。

        

              

 

 

 

 

      二、http协议

          统一资源定位符URL

          URL:统一资源定位符,经过下面格式,能够看出,就是用来定位咱们所须要资源在服务器上的位置。

            格式:<协议>://<主机>:<端口>/<路径>

              协议:http

              主机:域名/IP地址,原理度同样,到头来仍是会转换为IP地址,经过这个才能找到目标服务器

              端口: 在传输层须要使用的,访问目的主机的哪一个端口号。 

              路径:精准的定位咱们所须要的资源位置、    

                日常会省略协议和端口号,由于这些度是默认的,在访问主页时,路径也会省略。好比www.baidu.com这个默认进入百度的主页 完整写法 http://www.baidu.com:80/index.htm 

          超文本传送协议HTTP。

          做用:怎样向服务器请求文档、服务器怎么把文档传送给浏览器,通俗点讲,就是咱们想服务器访问网页资源时,服务器如何把网页上的东西传给咱们。

          客户端向服务器:请求报文    服务器向客户端:响应报文

          什么意思呢?在经过URL访问你服务器时,就会发送一个请求报文,告诉服务器须要哪些东西,服务器知道后,返回一个响应报文给客户端,其中就会带有一些网页信息。就是经过这个来达到传送网页资源的目的,如今来具体看看,请求报文和响应报文的格式。

          格式度同样,内容不同,格式都市

                  请求行            响应行

                  请求头部           响应体

                  请求数据           响应数据

          请求报文格式

              

          响应报文格式

              

 

            经过访问www.solu.com来看看咱们发送的请求报文和响应报文是什么样的

          请求报文:

              

              

            一、GET /http://www.sohu.com HTTP/1.1 请求行,只不过这里被分开了,请求的方式  URL 版本 

            二、Host:主机名 www.solu.com      

            三、User-Agent:使用什么代理服务器,这里就是FireFox,也就是火狐

            四、Accept:能接收的数据类型有哪些

            五、Accept-Language:表示用户但愿优先想获得的版本,一次排列下去,先是中文,再是英文

            六、Accept-Encoding:通知服务端能够发送的数据压缩格式

            七、Cookie:浏览器端的一个技术,在服务器上记录用户信息,可是也会在浏览器中保存一份。

            八、Connection:链接的方式,有两种,非持续链接和持续链接,非持续链接,一次请求/响应就对应一个TCP链接,接到了响应该链接就关闭,而后在发送请求就在创建TCP链接,持续链接就相反,这里使用的是持续链接

            九、Upgrade-Insecure-Requests:该指令用于让浏览器自动升级请求从http到https,用于大量包含http资源的http网页直接升级到https而不会报错.简洁的来说,就至关于在http和https之间起的一个过渡做用,这个能够放一放,不懂不要紧。

            以上2到9就是请求头部,因为通常请求报文度不会有请求数据的,因此在9后面就没有内容了,通常若是想要发送数据过去度会经过在域名后面加?而后将数据创送过去

 

          响应报文

                

            这其中就来简单看看响应行中的状态码把,响应体中内容太多,一会儿讲解不清楚

            状态码由三位数字组成,能够分为5大类共33种

            1xx:表示通知信息的,好比请求收到了或正在进行处理

            2xx:表示成功,也就是服务器接收到了你的请求,并成功处理了,通常最喜欢看到的就是200了

                200:此次请求成功了。

            3xx:表示重定向,服务器告诉浏览器要完成请求你必须采起进一步的行动,也就是去访问另外一个网页,

            4xx:表示客户的差错,好比请求中有错误的语法或不能完成

                404错误:就是找不到资源,就是你的URL写的有错误,使定位不到正确的资源

            5xx:服务器的差错,如服务器失效,或者内部出现异常不能完成你的请求

                500错误:就是服务器写的代码中有问题。

 

          还有不少中状态码,有兴趣的能够百度查一查。

 

 

 

5、总结

      到此为止,就真正的结束了,可能http讲的很简单,可是http协议的内容实在是太多了,只能取重要的一点点讲解一下,有兴趣的同窗能够本身去网上找找http的书籍观看,推荐一本HTTP权威指南,我有电子版,资源链接会在下面,能够本身去下载。。后续有时间,我也会花时间把这本书看完,而后写成博文。

 

      计算机网络教程视频资源连接      密码:9wr2

      

      HTTP权威指南        密码:k07z

 

 

      若是失效了,请加我qq:526745683 向我索取资源,注明博客园。谢谢