[HTTP权威指南读书笔记]第一章—HTTP概述

现在已博客为读书笔记以达到复习,记录,理解的功能。


    因为现在web服务器所使用的是HTTP协议,所以也被成为HTTP服务器,最明显的显示就是在浏览器中输入的网站地址(URL)最开头便是http://。Http服务器中储存了internet的数据,如果Http客户端(最常见的便是浏览器了)发送请求的话,它们就会提供数据。客户端向服务器发送HTTP请求,服务器会在HTTP响应中回送所请求的数据,HTTP客户端与HTTP服务器共同构成了万维网的基本组建。

    在服务器中的资源可以是各种各样的,其中可以有HTML,Word,图片,视频等,也可以是根据需求生成内容的软件程序。

    MIME类型(Multipurpose Internet Mail Extension ,多用途因特网邮件扩展)是用来描述并标记多媒体内容,web服务器会为所以HTTP对象数据附加一个MIME类型,当web浏览器从服务器中取回一个对象时,会去查看相关的MIME类型,看看它是否知道应该如何处理这个对象。如:。

    URI(统一资源标识符)包括了URL(统一资源定位符)与URN(统一资源名,尚未实现)。URL是描述了一个特定服务器上某资源的特定位置,如“http://www.baidu.com/”,大概分为三个部分,第一部分称为方案(scheme)对应http://,第二部分给出服务器的internet地址(如www.joes-hardware.com),其余部分制订了web服务器上的某个资源(如:/specials/saw-blade.gif)。

    一个HTTP事务是由一条(从客户端发送服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信是通过名为HTTP报文(HTTP message)的格式化数据块进行的。如:

    HTTP支持几种不同的请求命令,这些命令被称为HTTP方法,每个HTTP请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个Web页面,运行一个网关程序,删除一个文件等)。

每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。

    HTTP报文包括以下三个部分:

  • 起始行:报文的第一行就是起始行,在请求中用来说明要做些什么,在响应报文中说明出现了什么情况。

  • 首部字段:起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用(:)来分割。首部以一个空行结束。添加一个首部字段和添加新行一样简单。

  • 主体:空行之后就是可选的报文主体,其中包含了所以类型的数据。请求主体中包括了要发送给web服务器的数据,响应主题中装载了要返回给客户端的数据。

    HTTP是建立在TCP上的应用层协议,联网的细节都交给了TCP/IP了。在TCP/IP中你需要知道服务器的IP地址,以及与服务器上运行的特定软件相关的TCP端口号,如:

   


第一个URL使用了机器的IP地址,后面80就是端口号。

第二个URL使用的是主机名,是IP地址比较人性化的别称,可以通过DNS机制转换为IP地址。

最后一个URL没有端口号,HTTP默认端口号为80

下面展示浏览器如何通过HTTP显示位于远端服务器中的某个简单的HTML资源:


    Web的结构组件:

  • 代理:位于客户端与服务器之间的HTTP中间实体,接收所以客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。

  • 缓存:Web缓存(web cache)或代理缓存(proxy cache)是一种特殊的HTTP代理服务器,可以将经过传送的常用文档复制保存起来,下一个请求同一个文档的客户端就可以享受缓存的私有副本所提供的服务了。
  • 网关:一种特殊的服务器,作为其他服务器的中间实体使用,通常用会将HTTP流浪转换成其他的协议


  • 隧道:对HTTP通信报文进行盲转发的特殊代理。通常用来在一条或多条HTTP连接上转发非HTTP数据,转发时不会窥探数据。常见用途是通过HTTP链接承载加密的安全套接字层(SSL)流量,这样SSL流量就可以穿过只允许Web流量通过的防火墙了。

  • Agent代理是代表用户发起HTTP请求的客户端程序(如web浏览器)。也有如web机器人之类的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章