热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

序言这是计算机网络基础的最后一篇博文了,大体的从物理层到最上层的应用层做了一个大概的了解,花了也有快1个月的时间了,在本章结尾会给你们我学习该课程的视频资料,我希望能帮到所有想学习

    序言

       这是计算机网络基础的最后一篇博文了,大体的从物理层到最上层的应用层做了一个大概的了解,花了也有快1个月的时间了,在本章结尾会给你们我学习该课程的视频资料,我希望能帮到所有想学习想提高自己技术的同学,我看到很多厉害的的博客的文章都被锁了,我希望高手度能够帮助刚成长并且想努力提高技术的人。所以等我以后牛逼了,肯定会帮助哪些迷茫的人,因为自己曾经迷茫过,走了很多弯路。

                                                            --WH

一、回顾

        技术分享

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

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

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

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

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

        TCP/IP协议族四层,缺点:太简单,但被广泛使用,

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

    前面4层每层的作用和功能是什么?前面讲解的非常清楚

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

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

      网络层(一)

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

二、应用层

   1、概念

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

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

       客户/服务器(client/server)

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

       P2P

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

三、应用层协议的举例。

      1、DNS协议

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

          DNS协议是如何工作的呢?

          1、通过域名访问网页

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

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

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

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

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

              技术分享

      2、http协议

          统一资源定位符URL

          URL:统一资源定位符,通过下面格式,可以看出,就是用来定位我们所需要资源在服务器上的位置。

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

              协议:http

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

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

              路径:精准的定位我们所需要的资源位置、    

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

          超文本传送协议HTTP。

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

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

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

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

                  请求行            响应行

                  请求头部           响应体

                  请求数据           响应数据

          请求报文格式

              技术分享

          响应报文格式

              技术分享

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

          请求报文:

              技术分享

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

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

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

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

            5、Accept-Language:表示用户希望优先想得到的版本,一次排列下去,先是中文,再是英文

            6、Accept-Encoding:通知服务端可以发送的数据压缩格式

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

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

            9、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错误:就是服务器写的代码中有问题。

          还有很多中状态码,有兴趣的可以百度查一查。

五、总结

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

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

      HTTP权威指南        密码:k07z

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

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


推荐阅读
  • 基于域名、端口和IP的虚拟主机构建方案
    本文探讨了在单台物理服务器上构建多个Web站点的虚拟主机方案,详细介绍了三种主要的虚拟主机类型:基于域名、基于IP地址和基于端口的虚拟主机。每种类型的实现方式及其优缺点均进行了深入分析,为实际应用提供了全面的技术指导。 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 本文详细介绍了在Windows XP系统中安装和配置Unix打印服务的方法,以支持远程行式打印机(LPR)功能。对于同时使用Windows 2000 Server打印服务器和Unix打印服务器的网络环境,该指南提供了实用的步骤和配置建议,确保不同平台之间的兼容性和高效打印。 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 公司计划部署邮件服务器,考虑到已有域名,决定自行搭建内部邮件服务器。经过综合考量,最终选择在Linux环境中进行搭建,并记录了相关配置和实践过程。本文将详细介绍Postfix的基本设置步骤和实践经验,帮助读者快速掌握邮件服务器的搭建方法。 ... [详细]
author-avatar
手机用户2702932894
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有