《HTTP权威指南》学习笔记-HTTP概述和URL

引言

HTTP协议,一个熟悉又陌生的应用协议。熟悉的是它在各种计算机网络教材中必然会被提及的应用层协议,稍微有点计算机知识的人基本上都会听过这个协议。它是互联网的基础,可以这么说,没有HTTP协议,就没有当前互联网的蓬勃发展。然而,笔者对它又是陌生的。因为虽然参与开发了不少Web应用,但很少直接与HTTP协议直接打交道,因为Web容器隐藏了很多HTTP协议的细节(譬如:请求协议头的解析,响应报文的生成),使得上层开发不用关心HTTP即可以开发出可用的Web应用。不应该仅仅满足可用,还应该让应用更加高效,这促使我不得不去研究HTTP协议。私以为,如果想进一步提升自己的技术能力,必须要深入到协议层级别,一些平时感觉到莫名其妙的问题就可以迎刃而解。

最近阅读了《HTTP权威指南》一书,本文包含书中的核心要点、个人延伸以及个人操作实践。由于本书是2009年出版,距现在已经有6年之久,期间,HTTP协议本身也不断地发展。所以,一些老旧的知识点将不会出现在本文中。希望通过不断阅读和实践,并且记录下来,能够加深对HTTP协议本身的理解!

HTTP协议概述

本节介绍一些HTTP的基础知识,先对HTTP有一个宏观上的了解。

HTTP协议是什么

平常老看到TCP/IP协议、FTP协议,XX协议……不禁要问,到底什么是协议?查阅了百度百科,上面是这么定义的:

基本解释:共同计议;协商
法律范畴:协议是指两个或两个以上实体为了开展某项活动,经过协商后双方达成的一致意见。

感觉上面的解释有些简单和抽象,但是从中不难看出协议有下面两个要点:

  1. 两个及两个以上参与者。也就是说,如果只有一方参与,根本就不会涉及到协议。
  2. 协商一致。也就是说,所有参与方都必须同意并且遵守,才能使得活动能正常运行下去。

上面讲的一般意义上的协议,在计算机领域中,我们讲的协议一般是指通信协议,它仍然遵循上面的要点。首先,通信必然涉及到多方参与;其次,如果有一方不遵守协议,则根本没法进行有效通信。

下面来看看啥是HTTP协议,百度百科是这么说的:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

HTTP协议的特点

下面从这篇博客中转过来的HTTP协议的特点,这篇文章对HTTP做了很全面的介绍,值得一读。

  1. 支持客户/服务器模式。支持基本认证和安全认证。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  4. HTTP 0.9和1.0使用非持续连接(无连接性):限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象。
  5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大

特别直接说明的是HTTP的连接性。在我以前的认识里,HTTP最重要的特性是无连接性和无状态性。所谓无连接性,是指每一次请求都使用新的连接,请求完毕后连接关闭。这样做最大的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值