JavaWeb课程系列
2.请求报文
HTTP请求:客户端连上服务器后,向服务器发出获取某个Web资源的消息,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:
1)请求行
URL地址中如果包含中文,浏览器会自动对中文字符进行编码之后再发送
2)若干消息头(请求头)
3)实体内容(请求体) 有可能没有

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 | |||


