HTTP请求响应头信息|用Servlet如何实现验证码
2016-03-09 19:23
1021 查看
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 状态代码)进行设置
[b]------------------------------------------------------------[/b]
响应头信息
A:理解
当服务器端向客户端发送响应信息时,浏览器自动发送的一系列的名称与值的附加信息的集合。
B:作用
告诉浏览器,准备接收什么信息,做什么类型的准备工作。
C:设置响应头信息的内容
第一部分:http状态码,表示当前的请求处理的结果(成功还是失败)
第二部分:响应头信息
第三部分:空行
第四部分:真正的响应内容
例如:refresh响应头信息的使用。
服务器发回给客户端的一些有用信息叫响应报头。
• 响应报头的作用:指定cookie,提供页面修改时间,指示浏览器在指定时间间隔后刷新,制定生成文档的类型,指定页面重定向等
Content-Type 给出响应文档的MIME
Refresh 指明浏览器应该多长时间之后请求最新的页面
1、 常见的MIME类型:
-------------------------------------------------------------------
二、输出图片(验证码的实现)servlet的基本工作思路
A:设置输出信息格式为一个图片
B:获得输出流
C:实例化图片对象
D:获得绘图对象
E:设置背景色
F:填充背景色
G:设置前景色和字体
H:获得输出信息
I:输出信息
J:生成输出图片
当我们浏览器端和服务器端进行信息交互时,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 状态代码)进行设置
[b]------------------------------------------------------------[/b]
响应头信息
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:生成输出图片
相关文章推荐
- Servlet 05 客户端 http请求
- C++中this指针的用法详解 http://blog.chinaunix.net/uid-21411227-id-1826942.html
- Hadoop2.7.2分布式部署1(网络配置篇)
- Java从网络读取图片并保存至本地
- hdu4292 网络流 —最大流
- iOS网络解析中的md5加密+时间戳
- opencv 网络摄像头(webcamera)
- 如何在CentOS7上改变网络接口名
- Linux网络I/O模型
- Http学习
- maven新建web项目提示The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- Apache HttpClient 4.3开发指南 实现URL重定向
- vb6 winhttp 上传文件
- https原理:证书传递、验证和数据加密、解密过程解析
- 解决spring4.x中的MappingJacksonHttpMessageConverter错误
- httpclient4.3 设置代理请求
- 百宝云开源【易语言网络验证系统】完整版,可一键安装
- socket与http的区别
- Android使用Volley请求网络图片
- IOS网络支持库AFNetworking(1)