HTTP协议报文请求与响应

请求报文

HTTP请求:客户端连上服务器后,向服务器发出获取某个Web资源的消息,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:

1)请求行

URL地址中如果包含中文,浏览器会自动对中文字符进行编码之后再发送

2)若干消息头(请求头)

3)实体内容(请求体) 有可能没有

响应报文

1)所谓响应其实就是服务器对请求处理的结果,或者如果浏览器请求的直接就是一个静态资源的话,响应的就是这个资源本身。

HTTP响应的组成

(1)响应状态行:包括协议版本、响应状态码、响应状态信息

(2)响应消息头:响应头

(3)实体内容:响应体

2)最常见的响应状态码

代码

表示

说明

200

成功

服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。

302

重定向

代表让浏览器重新请求另一个资源

404

找不到

找不到请求的资源,但有时请求路径正确也返回404往往是由于Web应用有配置方面的问题,例如按照配置文件中指定的组件的全类名找不到指定的类。

500

错误

服务器内部错误,例如服务器端程序运行时抛出异常。

(1)响应状态码以2开头的通常表示成功。

(2)响应状态码以3开头的通常表示转移。

(3)响应状态码以4开头的通常表示无法访问,其中包括找不到资源或没有权限等。

(4)响应状态码以5开头的通常表示服务器端程序运行出错。

3)响应消息头:简称响应头

服务器发送给浏览器的数据,为了告诉浏览器一些情况。

代码

说明

Location: /day05/index.jsp

告诉浏览器重新定向到指定的路径

Server:apache tomcat

使用的什么web服务器

Content-Encoding: gzip

告诉浏览器我传给你的数据用的压缩方式

Content-Length: 80

响应体的字节数

Content-Language: zh-cn

响应体数据的语言

content-type: text/html; charset=GB2312

响应体内容的类型

Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT

资源最后被修改的时间

Refresh: 1

定时刷新

Content-Disposition:

attachment; filename=aaa.zip

文件下载

Set-Cookie:SS=Q0=5Lb_nQ; path=/search

将cookie数据回送给ie

Expires: -1

告诉浏览器不要缓存起来

Cache-Control: no-cache

当HTTP1.1服务器指定 CacheControl = no-cache时,浏览器就不会缓存该网页

Connection: close/Keep-Alive

是否保持连接

Date: Tue, 11 Jul 2000 18:23:51 GMT

响应的时间

(1)响应体:服务器给出的响应结果的主体,通常是用来在页面上显示的。

(2)HTTP内容类型:当前响应体的数据类型。

浏览器和服务器之间传输的数据类型并非都是文本类型,还包括图片、视频、音频等多媒体类型。这些多媒体类型是使用MIME类型定义的。MIME的英文全称是”Multipurpose Internet Mail Extensions” 多功能Internet 邮件扩充服务。MIME类型的格式是“大类型/小类型”,并与某一种文件的扩展名相对应。

(3)常见的MIME类型

文件

MIME类型

超文本标记语言文本

.html,.html text/html

普通文本

.txt text/plain

RTF文本

.rtf application/rtf

GIF图形

.gif image/gif

JPEG图形

.jpeg,.jpg image/jpeg

au声音文件

.au audio/basic

MIDI音乐文件

mid,.midi audio/midi,audio/x-midi

RealAudio音乐文件

.ra, .ram audio/x-pn-realaudio

MPEG文件

.mpg,.mpeg video/mpeg

AVI文件

.avi video/x-msvideo

GZIP文件

.gz application/x-gzip

TAR文件

.tar application/x-tar