图解HTTP(1)

一、了解Web及网络基础

      为知识共享而规划Web:1989年3月,CERN(欧洲核子研究组织)的Tim BernersLee博士提出了一种能让远哥两地的研究者们共享知识的设想。最初设想的基本理念是:借助多文档之间相互关联形成的超文本(HyperText),连成可相互参阅的WWW(World Wide Web,万维网)。

      现在已提出了3项WWW构建技术,分别是:把SGML作为页面的文本标记语言的HTML;作为文档传递协议的HTTP;指定文档所在地址的URL。

      网络基础TCP/IP

图解HTTP(1)

二、简单的HTTP协议

      HTTP是无状态协议,即对发送过的请求或响应都不做持久化处理。为了实现期望的保持状态功能,引入了Cookie技术。

      方法:GET、POST、PUT(不带验证)、HEAD、DELETE、OPTIONS、TRACE(追踪路径)、CONNECT

图解HTTP(1)

      为解决上述TCP连接的问题,HTTP/1.1和一部分的HTTP/1.0想出了持久连接(HTTP keep-alive)的方法,只要任意一端没有明确提出断开连接,则保持TCP连接状态。此时客户端和服务器端都需要支持。

图解HTTP(1)

     持久连接使得多数请求以管线化(pipelining)方式发送成为可能,不用等待响应亦可直接发送下一个请求,从而实现并行。

      Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。一个叫做Set-Cookie字段通知客户端保存Cookie。客户端发送请求时自动加入Cookie值,服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

三、HTTP报文内的HTTP信息

图解HTTP(1)

 常用的内容编码:gzip、compress、deflate(zlib)和identity(不进行编码)

 在MIME扩展中会使用一种称为多部分对象集合(Multipart)的方法,来容纳多份不同类型的数据。

  multipart/form-data(在Web表单文件上传时使用)、multipart/byteranges(状态吗206)

  获取部分内容的范围请求:下载遇到网络中断,需要一种可恢复的机制,Range字段 bytes=5001-10000

  内容协商:如中文或英文,Accept、Accept-Charset(字符集)、Accept-Encoding、Accept-Language、Content-Language

四、返回结果的HTTP状态码

   状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。

图解HTTP(1)

 实际经常使用的大概只有14种。