1、http传输的信息内容
当我们浏览器端和服务器端进行信息交互时,http除了发送请求和响应信息外,还会自动发送一系列的附加信息。这些Http自动发送的附加信息,称为http头信息。
(1)分类
根据请求和响应的不同阶段,将http头信息,分成请求头信息和响应头信息。
(2)请求头信息
A:理解
在向服务器端发送请求的同时,浏览器自动向服务器发送的一系列的附加信息。
B:目的
告诉服务器端,客户端能够或希望接收的响应信息。
C:特点
头信息,总是名称与值的成对的集合(类似于属性Attrabute、parameter和Map集合的构成)。
浏览器自动实现,不需要进行人为的操作。
D:请求头信息的捕获E:用户请求的组成
用户的请求实际上由三个部分组成
http版本,请求头信息,真正的请求的资源。
请求报头的读取比较简单,只需要知道报头的名字,再调用request.getHeader(String name)就可以了。
大多数情况下,每个报头在请求中只出现一次,,但也有个别的如accept-language会出现多次,每次也出现不同的值。此时,可用request.getHeaders(String name)获得所有值的枚举。
HTTP的状态码,无论是用哪一种语言开发,状态码都一样,只要是使用的HTTP协议即可。
Http协议的状态码不居于任何语言的改变而改变,其中特定的状态代码,这些代码分为5类:
● 100~199:这之间的代码都是信息性的,标示客户应该采取的其它动作;
● 200~299:表示请求成功;
● 300~399:用于那些已经移走的文件,常常包括Location报头,指出新的地址;
● 400~499:表明由客户引发的错误;
● 500~599:表示由服务器引发的错误;
其中比较重要、常用的状态码有:⑴、200 :表示一切OK,一切正常;
⑵、400 :请求出现语法错误;
⑶、404 :无法找到指定位置的资源;
⑷、405 :请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用;
⑸、500 :内部服务器程序有问题,抛异常;
⑹、503 :服务器不可用;
⑺、505 :不支持的Http版本;
• 客户端的请求由一个http命令(get/post)、0或多个请求报头以及要请求的资源组成。
• 服务器的响应一般由一个状态行、一些响应报头、一个空行和相应文档组成。
• Http响应的状态行由http版本、一个状态代码和一段消息组成。
• http版本由服务器来决定,一般情况下,servlet也不需要设置状态代码,系统自动默认为200。如果需要明确指明当前程序的运行状态,则可以利用response.setStatus(int 状态代码)进行设置
------------------------------------------------------------ 响应头信息A:理解
当 服务器端向客户端发送响应信息时, 浏览器自动发送的一系列的名称与值的附加信息的集合。
B:作用
告诉浏览器,准备接收什么信息,做什么类型的准备工作。
C:设置响应头信息的内容
第一部分:http状态码,表示当前的请求处理的结果(成功还是失败)
第二部分:响应头信息
第三部分:空行
第四部分:真正的响应内容
例如:refresh响应头信息的使用。
服务器发回给客户端的一些有用信息叫响应报头。
• 响应报头的作用:指定cookie,提供页面修改时间,指示浏览器在指定时间间隔后刷新,制定生成文档的类型,指定页面重定向等
Content-Type 给出响应文档的MIME
Refresh 指明浏览器应该多长时间之后请求最新的页面
1、 常见的MIME类型:
类型 |
含义 |
application/msword |
Microsoft Word文档 |
application/vnd.ms-excel |
Excel电子表格 |
|
|
application/pdf |
Acrobat(.pdf)文件 |
application/x-gzip |
Gzip档案 |
application/zip |
Zip档案 |
Audio/midi |
MIDI音频文件 |
Audio/x-aiff |
Microsoft Windows音频文件 |
Image/jpeg |
JPEG图像 |
Image/png |
PNG图像 |
Image/tiff |
TIFF图像 |
Text/html |
HTML文档 |
Text/xml |
XML |
Video/mpeg |
MPEG视频片断 |
-------------------------------------------------------------------
二、输出图片(验证码的实现)servlet的基本工作思路A:设置输出信息格式为一个图片
B:获得输出流
C:实例化图片对象
D:获得绘图对象
E:设置背景色
F:填充背景色
G:设置前景色和字体
H:获得输出信息
I:输出信息
J:生成输出图片