• Httpd总结 :HTTPD的基本概念


    这是一篇为初学者准备的文章,所以作者会尽量从基础出发,尽量细致的描述每一个细节,以求让初学者不会一头雾水,有一定基础的同学就不用看了,以免浪费你的时间。
     
    假设博主今天春心荡漾,想要访问一些不可描述的小网站,于是,博主悄悄的打开了浏览器,在浏览器的地址栏中输入了一个小网站的网址,此处假设这个小网站的网址为www,baidu.com,当博主输入了这个网址以后,浏览器中就显示了博主想要看到的内容,整个过程如下图所示。

     

    那么,浏览器返回给我们的内容是怎么产生的呢?
    这些内容肯定不是凭空产生的,而是有人为我们准备了这些内容,当我们在浏览器的地址栏输入网址,这些提前准备好的内容即可返回到浏览器中,以便有需要的人能够查看到这些内容,而查看这些内容的人就是我们平常所说的“客户”,客户往往会通过“客户端程序”去请求,查看这些内容,我们最常使用的客户端程序就是浏览器了,所以,在之后的http相关的文章中,如果没有特别说明,我们所说的”客户端“就是“浏览器”,我们使用客户端去查看我们想要的内容,而提供内容的一端被称为“服务器端“,当作为客户时,我们需要在电脑上安装客户端软件(即浏览器),通过客户端软件查看我们想要的内容,而作为提供内容的人,也需要在服务器的计算机上安装对应的软件,才能为我们提供服务,而服务器端的计算机就是我们常说的“服务器”,安装在服务器上的,为我们提供内容的软件称之为“web服务器软件”。
     
    所以,综上所述,我们可以了解到如下名词
    注:如下名词的解释均针对http而言,在后面的文章中我们会解释什么是http,此处不用纠结
    客户端:客户端通常是指浏览器,比如谷歌浏览器,火狐浏览器,IE等,浏览器安装在客户使用的电脑上,所以,在描述http时,客户端通常也代指那些安装了浏览器的电脑。
    服务端:·服务器通常是那些安装了“web服务软件”的计算机,这些服务端的计算机被称为服务器。
     
    没错,聪明如你一定想到了,说白了,客户端与服务端就说两台电脑,分别安装了不同的软件,服务器提供内容,客户端查看内容

     

    所以,当我们访问网页时,大致的过程如下图所示。

     

    客户端与服务器既然能够通讯,那么证明它们之间一定是通过某种方法进行沟通当的,就像你我之间能够进行沟通一样。
    你和我都说汉语,所以,当我说“苹果”这个词的时候,你就会想到一种水果,或者想到一个手机品牌,但是当我对一个美国人说“苹果”两个字时,他可能并不能理解我在说什么,因为他可能听不懂汉语,如果我想要对他表达“苹果”这个词,我需要说“Apple”,他才会明白我说的是什么,当我跟你聊天时,我们都说汉语,当两个美国人聊天时,他们都说英语,这样,才能有效的沟通,总之,如果想要能够顺畅的沟通,沟通双方都必须遵守相同的协议,我们可以把汉语理解成一种协议,把英语也理解成一种协议,只要沟通双方都遵守相同的协议,双方就能够顺畅的沟通,只要沟通双方都遵守相同的协议,双方就能够理解对方想要做什么。当然,之所以拿汉语,英语举例,是为了让初学者能够更加容易的理解“协议”这个词,但是请不要错误的以为“协议“就是”“语言”,之所以拿语言举例,是为了方便理解,说白了,“协议”可以理解为某种规则或者某种约定,只要大家严格按照这种约定行事,世界就会正常的运转,比如“红灯停”,“绿灯行”也可以理解为一种协议,比如在马路上都要靠右行驶(在中国),也是一种协议,比如在小饭馆,你给老板人民币,老板给你对应的餐食,也是一种协议,“协议”的概念稍微有一些抽象,稍微有一些宽泛,此处大概有一个印象即可,在学习的过程中,我们自己就会慢慢的理解它了。
     
     
    客户端与服务器之间,也需要遵守某些相同的协议,才能够顺畅的通讯,细心如你一定注意到了,我说的是“某些”协议,也就是说,双方要遵守的协议不止由一种。它们需要同时遵守多种协议,才能够正常的完成整个通讯过程。
     
    就像我们发送信件一样,首先,我们需要将信息写到一张纸上,然后将信纸放到信封中,并且将信封封死,最后将信件投入邮局中。邮局根据信件的目的地址,将信件分派到不同的运转中心(分拣中心),中转中心根据信件的地址,将信件发送到下一个中转中心,直到由中转中心发往信件的目的地,当信件到达收件人手中之后,收件人需要拆开信封,拿出信纸,阅读邮件,就能知道发信人想要传达的信息,整个过程中,发信人将信件写在纸上,并将信纸放入信封中,这其实就是一种协议,因为大家如果想要发送信件,则都需要这么做,信件被邮局传输的过程,其实也是一种协议,因为邮局或者快递公司,都是将信件或者快件发送到中传中心,再由中传中心一步一步的中传到最终的目的地的,这个大家都遵守的运输规则,也是一种协议,只不过,邮局的协议是针对运输过程这个层面的协议,而写信,封信,拆信对应的协议不是针对运输过程的,而是针对信息封装过程这一层面的一种协议,所以,这两种协议所针对的“层面”不同,但是如果想要正常完成整个过程,则必须遵守各个“层面”的协议,才能正常的完成整个发信收信的过程。
    而客户端与服务器通讯的过程也是一样的,它们需要同时遵守很多协议, 这些协议可能针对的“层面”不同,当整个过程处于某个层面时,就需要遵循这个层面的协议,才能够正常工作,在最早的时候,人们将网络世界分为七层,但是,人们发现,将网络世界分为七层有些复杂了,而且不太实用,经过一段时间的实践,人们将网络世界分为了4层(或者说分成了5层,此处不用纠结),我们把这4层称之为:应用层,转输层,网络层和数据链路层。
     
    当然,网络并不是我们此处探论的重点,我们可以先聊聊另外一些东西,比如http协议,刚才已经说过,不同的”层面“中,需要使用不同的协议,http协议就是应用层的一种协议,http协议是什么意思呢?
    http是HyperText Transfer Protocol的缩写,HyperText Ttansfer Protocol 译为“超文本转输协议”。
    从字面上理解,这种协议是用来转输“超文本”的,我们可以暂且粗暴的将“超文本”理解成我们所谓的”网页“(这样并不准确,但是方便理解),那么,我们可以将http协议理解为一种“网页转输协议”。
    当我们在浏览器中输入网址时,其实就是在访问我们期望访问到的“网页”,而我们说过,这些网页中的内容不是凭空产生的,是别人提供给我们的,所以,如果我们需要访问网页,则需要从别人那里获取到这些网页文件。
    客户端通过http协议告诉服务端:“我想要访问那个页面,请你转输给我”。
    因为服务端也能够理解http协议,所以,服务端听到客户端的诉求以后,通过http协议找到对应的页面,再转输给客户端。
    客户端收到了对应的网页以后,浏览器会对网页进行“解析”,最终展示别到人的眼前,变成我们看到的网页的内容。
    浏览器我们天天都在用,浏览器是一种常用的客户端软件,它能够理解http协议,浏览器有不同的“品牌”,比如谷歌浏览器,火狐浏览器,IE浏览器等,我们可以根据自己的使用需要,选择一款适合自己的浏览器,浏览器是客户端软件,那么常用的服务端软件有哪些呢?
    常见的http服务端软件如下(不包含能够处理动态请求的服务端软件):
    Httpd
    Nginx
    lls
    与浏览器一样,服务端软件也有不同的“品牌”,上述三种常见的http服务器软件就可以理解为不同的厂商的产品。
    Httpd就是Apache软件基金会旗下的产品,由于Httpd是Apache如软件基金会众多产品里面出名较早的产品,所以人们往往会不加区分的称呼appche与httpd,当然,除了httpd以外,Apache软件基金会下面还有很多出名的开源项目。
    Nginx就是所谓的“后起之秀”,它是俄国人发明的,与httpd相比,它的特点就是并发能力强,资源消耗小。
    lls是我们熟知的“微软”的产品,它是Windows Server中的默认提供的http服务器。
    我们可以根据具体的场景或者需要,选择对应的服务端软件。
     
     
    好了,说了这么多,都是一些非常基础的概念,只是为了方便入门的同学,我们会在之后的文章中,慢慢的深入,慢慢的结合实际总结一些知识,希望这篇文章呢能够帮助到你~
     
     
     
     
     
  • 相关阅读:
    Kubernetes实战总结
    Kubernetes实战总结
    Kubesnetes实战总结
    Kubernetes实战总结
    【转载】Nginx、HAProxy、LVS三者的优缺点
    Kubernetes实战总结
    【解决】 Streaming server stopped unexpectedly: listen tcp: lookup localhost on 114.114.114.114:53: no such host
    Kubernetes实战总结
    (转载)常用正则表达式大全——包括校验数字、字符、一些特殊的需求
    css选择器参考手册
  • 原文地址:https://www.cnblogs.com/momenglin/p/8521064.html
Copyright © 2020-2023  润新知