`
LiZn
  • 浏览: 10276 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

HTTP Developer’s Handbook 中文翻译 Chapter 5:第一节 HTTP请求的语法

 
阅读更多

原文地址:HTTP Developer’s Handbook 中文翻译 Chapter 5:第一节 HTTP请求的语法

一个Http请求(即由Web客户端发往Web服务器的消息),由以下3部分组成:

  • Request line (请求行)
  • HTTP headers (HTTP消息头,以下会简称消息头)
  • Content (消息正文)

HTTP请求的第一行总是请求行(request line),请求行指定了请求方法(request method),资源的位置以及使用的HTTP协议的版本。这3个部分之间用空格隔开。例如:

1 GET / HTTP/1.1

这个例子指定了GET方法,位于/(文档根目录)下的资源以及 HTTP/1.1 版本的协议。

HTTP请求的第二个部分是 HTTP消息头(HTTP headers) 。 消息头包含了那些可以更清楚地解释Web客户端的请求的信息。可以出现在HTTP请求中的消息头有3种类型:

  • General headers (通用的消息头)
  • Request headers (请求头,与请求控制相关的头部)
  • Entity headers (实体头,与消息正文相关的头部)

没有规定要求消息头遵循上述顺序。因为实体头是与消息正文相关的头部,所以较少在请求中出现。

Note
大多数HTTP请求不包含任何正文内容,因为他们的目的通常就是去请求一些内容。然而你将会看到,允许在请求中发送正文内容这种灵活性是非常有用的。尤其是对于需要交互的网站来说,为了交互需要,用户必须能够发送一些数据。

这里有一个例子,是作者在Chapter 3中使用他的Galeon 1.2.0浏览器在google中搜索HTTP时,浏览器向google的服务器发送的请求。

1 GET /search?hl=en&q=HTTP&btnG=Google+Search HTTP/1.1
2 Host: www.google.com
3 User-Agent: Mozilla/5.0 Galeon/1.2.0 (X11; Linux i686; U;) Gecko/20020326
4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,
5         text/plain;q=0.8, video/x-mng,image/png,image/jpeg,image/gif;q=0.2,
6         text/css,*/*;q=0.1
7 Accept-Language: en
8 Accept-Encoding: gzip, deflate, compress;q=0.9
9 Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66
10 Keep-Alive: 300
11 Connection: keep-alive

拆解来看,以下是该请求的请求行:

1 GET /search?hl=en&q=HTTP&btnG=Google+Search HTTP/1.1

请求方法GET, 资源 /search?hl=en&q=HTTP&btnG=Google+Search (一个相对 URL)以及HTTP版本 HTTP/1.1 被空格分隔。此例中,这个URL比 ‘/’ 这个字符包含了更多的关于所请求的资源的附加信息。关键词HTTP被包含在URL中是由于Google的<form>标签使用了GET方法。而使用POST方法会将所需的数据作为HTTP请求的正文来发送。Web开发的新手经常会将这2种方法搞混,关于这2种方法的区别将会在下一节“Request Methods(请求方法)”中更清楚的阐释。

该请求余下的部分就都是消息头了(因为是GET方法所以没有正文内容),按类型来分,以下是通用头部(General headers):

1 Keep-Alive: 300
2 Connection: keep-alive

以下是 请求头部(Request headers):

1 Host: www.google.com
2 User-Agent: Mozilla/5.0 Galeon/1.2.0 (X11; Linux i686; U;) Gecko/20020326
3 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,
4         text/plain;q=0.8, video/x-mng,image/png,image/jpeg,image/gif;q=0.2,
5         text/css,*/*;q=0.1
6 Accept-Language: en
7 Accept-Encoding: gzip, deflate, compress;q=0.9
8 Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66

一般来讲是非常容易区分一个头部是属于哪一类的。请求头会指定一些针对HTTP请求的信息,比如User-Agent头部是用来识别Web客户端软件的。通用头部是既能够用于HTTP请求又能够用于HTTP响应的。实体头部则是反应消息正文特征的一些信息。因为本例中的请求没有消息正文,所以它也没有实体头部。

请记住这个HTTP请求,因为它被用于本章的大多数例子。

本博客文章由LiZn创作或分享,以创作公用CC 姓名标示-非商业性-相同方式分享 3.0 Unported 授权条款共享。 
转载请注明 转自: HTTP Developer’s Handbook 中文翻译 Chapter 5:第一节 HTTP请求的语法 

1
1
分享到:
评论

相关推荐

    HTTP+Developer_s+Handbook+.pdf

    通过以上总结可以看出,《HTTP Developer's Handbook》是一本非常全面且深入的书籍,不仅覆盖了HTTP协议的基础知识,还涉及到了许多高级主题,非常适合Web开发者深入了解HTTP协议及其在网络编程中的应用。...

    [HTTP] HTTP Developer's Handbook [Sams]

    The HTTP Developer's Handbook is written specifically for Web developers. It begins by introducing the protocol and explaining it in a straightforward manner. It then illustrates how to leverage this ...

    Python Developer's Handbook

    《Python Developer's Handbook》是由 André Dos Santos Lessa 编著,由Sams Publishing出版的一本专为Python开发者量身打造的指南。这本书深入探讨了Python编程的各个方面,旨在帮助读者从初学者到熟练掌握,乃至...

    HTTP Developer's Handbook.chm

    HTTP Developer's Handbook.chm 关于 http,很好的

    HTTP Developer's Handbook.doc

    第一部分“介绍HTTP”包括: 1. “什么是HTTP?”这一章回顾了HTTP的历史和目的,提供了一个简洁的概述。 2. “互联网与万维网”探讨了互联网的基础,以及万维网的角色,包括网络协议、统一资源标识符(URI)以及...

    HTTP Developer's Handbook开发手册英文

    手册的第一部分主要介绍了HTTP的基本概念。第一章解释了HTTP是什么,它的发展历史和主要目的。接着,第二章讲述了互联网和万维网的基本构成,包括互联网、万维网、网络协议、统一资源标识符以及使用HTML来格式化信息...

    3个HTTP协议书打包HTTP Developer's Handbook,HTTP--The Definitive Guide,RFC2616 HTTP1.1 PDF

    压缩包包含3个文件 HTTP Developer's Handbook.chm HTTP--The Definitive Guide.chm RFC2616 HTTP1.1 PDF,比看网页舒服,呵呵 全是英文的

    Bluetooth Low Energy The Developer-'s Handbook.pdf

    In Bluetooth Low Energy, one of the standard's developers has written the first comprehensive, accessible introduction to BLE for every system developer, designer, and engineer. Robin Heydon, a ...

    Java EE 7 Developer Handbook.pdf

    《Java EE 7 Developer Handbook》是一本专为Java EE 7开发者编写的参考指南,它旨在帮助读者开发出专业级别的应用程序。该手册为Java EE 7技术栈提供了详尽的指导和参考资料,是Java EE开发者必备的专业文献。书中...

    Object Pascal Handbook,最新Ddelphi书籍,for XE7

    Chapter 5: Arrays and Records Chapter 6: All About Strings Part II Chapter 7: Objects Chapter 8: Inheritance Chapter 9: Handling Exceptions Chapter 10: Properties and Events Chapter 11: Interfaces ...

    Nios II Software Developer’s Handbook

    《Nios II Software Developer’s Handbook》是一份由Altera公司发布的官方手册,主要面向使用Nios II软核处理器进行软件开发的工程师和技术人员。该手册详细介绍了Nios II处理器的软件开发环境、开发流程以及相关的...

    Delphi 2009 Handbook.part1.rar

    带书签完全版 刚刚找到呵呵 第一部分 Delphi 2009 Handbook 包含源代码 Chapters List This is the list of the book chapters: Part I: Unicode * Chapter 1: What is Unicode? * Chapter 2: The UnicodeString ...

    Delphi 2009 Handbook

    * Chapter 5: Generics * Chapter 6: Anonymous Methods * Chapter 7: More Language and RTL Changes Part III: VCL and Databases * Chapter 8: VCL Improvements * Chapter 9: COM Support in Delphi 2009 * ...

    Cocoa Programming Developer's Handbook

    Cocoa Programming Developer's Handbook 英文版 about cocoa apis development skills

    The Agile Developer's Handbook EPUB格式

    这是一本敏捷开发的入门书,总结了敏捷开发方法的常用实践。可作为敏捷开发的参考手册。

Global site tag (gtag.js) - Google Analytics