HTTP协议详解2--请求头与响应头

本文详细介绍了HTTP协议中的请求头和响应头,包括它们的组成部分:起始行、首部字段和主体。请求报文与响应报文的起始行语法有别,首部字段分为通用、请求、响应、实体和扩展五类。文章还讨论了各种首部的作用,如Accept首部用于指示客户端的偏好,条件请求首部允许客户端设置响应条件,响应首部提供服务器信息,实体首部描述报文负荷信息。同时,提到了HTTP抓包工具如fiddler、firebug,并引用了相关资源供深入学习。
摘要由CSDN通过智能技术生成
一、简介

从web客户端发往web服务器的http报文称为请求报文(request message),从服务器发往客户端的报文称为响应报文(response message),此外没有其它类型的http报文。

http请求和响应报文的格式很类似,都包括以下3个部分:

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

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

  • 主体(body)
    空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含文本。

二、语法

请求报文与响应报文只有起始行的语法有所不同。

1、请求报文:

<method> <request-URL> <version>
<headers>

<entity-body>

如:

GET /test/hi.txt HTTP/1.1
Accept: text/*
Host: www.test.com

2、响应报文:

<version> <status> <reason-phrase>
<headers>

<entity-body>

如:

HTTP/1.1 200 OK
Content-type: text/plain
Content-length: 19

Hi! I'm a message!
三、抓包

我们常用的HTTP抓包工具有如fiddler、firebug等,大家根据自己的喜好选择自己的工具。

如下是我使用firebug抓取到的一个http请求及响应包:

四、首部

HTTP首部字段可以分为如下几类:通用首部、请求首部、响应首部、实体首部、扩展首部。
每个HTTP首部都有一种简单的语法:名字后面跟着冒号(:),然后跟上可选空格,再跟上字段值,最后是一个CRLF。

1、通用首部
有些首部提供了与报文相关的最基本信息,它们被称为通用首部。客户端和服务器都可以使用这些通用首部。

首部 描述 举例
Connection 允许客户端和服务器端指定与请求/响应连接有关的选项 Connection: close
Date 报文创建的日期和时间 Date: Tue, 3 Oct 1974 02:16:00 GMT
MIME-Version 给出了发送端使用的MIME版本 MIME-Version: 1.0
Trailer 说明报文拖挂中提供了哪些首部 Trailer: Content-Length
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值