<Http权威指南 1,2,3>Http概述

读书笔记   ---   创建时间:2014/2/13 14:12

第一章:Http概述
1. Web服务器是Web资源的宿主,Web资源种类繁多,包括文件,图片,视频等。它们作为Http的对象数据在客户端和服务器间传输。Web服务器会为所有的Http对象数据附加上一个MIME类型信息,标示资源的类型,而Web浏览器取回资源时会去读取MIME类型来判断自己是否知道如何处理这类资源,如是调用系统的声卡播放音频资源,还是在窗口中展示文本。
(问题:服务器是如何判断资源的MIME类型的?
1:可以通过文件的扩展名分辨,服务器中定义了所有后缀对应的MIME类型值
2:服务器扫描文件的内容,然后举定义好的模式文件匹配
3:显示分类,服务器强制定义某个目录内为某个MIME类型)
HTTP通过URL来定位资源在网络中的位置。

web服务器与客户端之间交互过程:

大致可以分为7个步骤:

(1)建立连接:如果客户端已经打开了一个与服务器的persistent connection,就可以直接使用该连接,否则需要新建一个连接。

(2)接收客户端的请求:对请求消息进行缓冲、解析处理;

(3)处理请求:对于繁忙的服务器,可能同时需要处理的连接请求成千上万个,下面会介绍服务器采取的一些架构;

(4)访问请求的资源:根据请求消息中的URL映射到服务器上某个指定的资源;

(5)创建响应;包括判断资源的MIME类型,资源长度等,以及响应是否成功或者重定向;

(6)发送响应给客户端,如果是persistent connection,响应发送完成后,仍保留连接打开状态。

(7)日志记录;


2. Web客户端和服务器间通过“HTTP报文”这种格式化数据进行通信,HTTP报文分请求报表和响应报文,交互过程中可以指定方法和状态码信息。另外一个页面一般是许多资源的集合,这些资源也可能放在不同的服务器上,因此请求一个页面时,可能会发生多个事务。

3. HTTP是一个应用层协议,它无需操心网络通信的具体细节,它把联网的细节都交给了通用的,可靠的因特网传输协议TCP/IP。HTTP使用TCP来传输其报文数据

4. 互联网中还有其他的结构组件与Web浏览器和Web服务器间交互,如代理,缓存,隧道,网关,Agent代理(网络爬虫)。

第二章:URL与资源
1. URL与URN的区别
    URI是一个通用的概念,URL和URN是它的子集。
    URL通过资源位置来标示资源;
    URN通过资源的名字来标示资源,与资源的位置无关。

2. URL的语法:
scheme指定如何访问资源的主要标示符,解析URL的应用程序需要根据此字段决定选用什么协议。常用的有Http, Https, FTP, File, Telnet等。

3. URL的快捷方式:
     3.1 相对URL,基于基础URL的信息来构造一个新的URL,在HTML页面中用的比较多,如页面间的跳转
     3.2 自动扩展URL:
          客户端程序(Web浏览器)在用户数据部分URL的情况下,根据URL的语法自动补充URL的片段,且提供一些候选让用户选择,减少用户的输入。

4. URL的编码:
     4.1 要求:
     1. 字符应该是小巧的,安全的,避免由于URL字符串在网络中不同协议间传输出现字符丢失的情况(注,不同协议识别的字符集不同,可能出现将不识别的字符集过滤掉的情况)
     2. URL可读写,要求那些不可见的字符不能出现在URL中,如换行,制表
     3. 完整性:有时需要在URL中出现一些除了安全字母表外的字符或二进制字符,URL中引入了“转义字符”的概念,它可以使我们安全字符表中的有限字符来标示更多的字符。

第三章:HTTP报文
1. 报文组成:
1.1 请求报文
1.2 响应报文
1.3 Http 0.9
它是Http的早期协议,比较简单,没有版本信息,没有状态码和状态描述,首部。与Http1.0比缺少必要的灵活性

2. 方法类别
2.1 规范中的方法:
     Get, Post, Head, Trace, Put, Delete, Options
2.2 Trace
     客户端发起一个请求时,这个请求可能穿过防火墙,代理,网关或其他一些应用,每个中间节点都可能修改原始的HTTP请求。目的服务器当收到Trace方法的请求时,会将请求作为响应报文的主体返回给客户,这样客户就能知道服务器收到的报文的样子。
注意Trace请求中不能包含实体内容。
Trace方法请求可以作为工具来查看代理和其他应用程序对用户请求锁产生的效果,但是它的缺点是假定了中间应用程序对各种不同类型请求的处理时相同的。而实际上Http应用程序会根据方法的不同做不同的事情。

2.3 Options
请求Web服务器告知其支持的各种功能,可以询问服务器通常支持哪些方法,或者对某些特殊资源支持哪些方法。

3. 状态码
   1**     信息状态码
   2**     成功状态码
         200   OK
         204   No Content
   3**      重定向状态码   资源的位置移动了,则返回一个重定向状态码和一个可选的Location首部标识资源的新位置
        301    Moved Permanently
        305    User Proxy
    4**      客户端错误状态码 
          400    Bad Request
          401    Unauthorized
          404    Not Found
    5**       服务器错误状态码
          501    Not Implemented    客户端发起的请求超出了服务器的能力范围(比如使用了服务器不支持的请求方法)
          503    Service Unavailable    说明服务器现在不能为请求提供服务

4. 首部:
     首部和方法是结合使用来绝对服务器和客户端能做什么事情的,随着应用的发展,提供的有代理首部和缓存首部相关的参数配置,来为其他的互联网组件提供服务,如代理和缓存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值