- 浏览: 237066 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (188)
- Java (68)
- SQL (9)
- JavaScript (1)
- Spring (3)
- Struts (0)
- OS (4)
- Mywork (8)
- IT News (10)
- Passtime (15)
- English (11)
- SCJP (2)
- Linux (4)
- Maven (6)
- OpenSource (1)
- 持续集成CI (1)
- CVS (3)
- Hudson (3)
- OpenID (5)
- Web (8)
- Project Management (6)
- CRM (3)
- CaseStudy (2)
- SSO (1)
- OpenLDAP (4)
- Thinking (1)
- JGroup (1)
最新评论
-
guji528:
谢谢分享!
一些关于Emma的资料 -
atgoingguoat:
我也碰到这个问题
Linux 下具体如何处理.
java.net.UnknownHostException: ibatis.apache.org -
zerostar88:
http://www.limodev.cn/blog/arch ...
HTC G3 刷 Recovery and ROM -
zerostar88:
but DES now is deprecated, we u ...
DES/CBC/PKCS5Padding密码 -
xnxylxh:
辛苦了
数字证书
HTTP请求头概述
HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求
头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-Length必须出现。
下面是一些最常见的请求头:
Accept:浏览器可接受的MIME类型。
Accept-Charset:浏览器可接受的字符集。
Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。
Connection:
表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP
1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一
点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入
ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。
Content-Length:表示请求消息正文的长度。
Cookie:这是最重要的请求头信息之一,参见后面《Cookie处理》一章中的讨论。
From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。
Host:初始URL中的主机和端口。
If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答。
Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。
Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。
User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。
UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。
有关HTTP头完整、详细的说明,请参见http://www.w3.org/Protocols/的HTTP规范。
5.2 在Servlet中读取请求头
在Servlet中读取HTTP头是非常方便的,只需要调用一下HttpServletRequest的getHeader方法即可。如果客户请求中提供
了指定的头信息,getHeader返回对应的字符串;否则,返回null。部分头信息经常要用到,它们有专用的访问方法:getCookies方法返回
Cookie头的内容,经解析后存放在Cookie对象的数组中,请参见后面有关Cookie章节的讨论;getAuthType和
getRemoteUser方法分别读取Authorization头中的一部分内容;getDateHeader和getIntHeader方法读取指
定的头,然后返回日期值或整数值。
除了读取指定的头之外,利用getHeaderNames还可以得到请求中所有头名字的一个Enumeration对象。
最后,除了查看请求头信息之外,我们还可以从请求主命令行获得一些信息。getMethod方法返回请求方法,请求方法通常是GET或者POST,但也有
可能是HEAD、PUT或者DELETE。getRequestURI方法返回URI(URI是URL的从主机和端口之后到表单数据之前的那一部分)。
getRequestProtocol返回请求命令的第三部分,一般是“HTTP/1.0”或者“HTTP/1.1”。
5.3 实例:输出所有的请求头
下面的Servlet实例把所有接收到的请求头和它的值以表格的形式输出。另外,该Servlet还会输出主请求命令的三个部分:请求方法,URI,协议/版本。
ShowRequestHeaders.java
package hall; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class ShowRequestHeaders extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "显示所有请求头"; out.println(ServletUtilities.headWithTitle(title) + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1 ALIGN=CENTER>" + title + "</H1>\n" + "<B>Request Method: </B>" + request.getMethod() + "<BR>\n" + "<B>Request URI: </B>" + request.getRequestURI() + "<BR>\n" + "<B>Request Protocol: </B>" + request.getProtocol() + "<BR><BR>\n" + "<TABLE BORDER=1 ALIGN=CENTER>\n" + "<TR BGCOLOR=\"#FFAD00\">\n" + "<TH>Header Name<TH>Header Value"); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = (String)headerNames.nextElement(); out.println("<TR><TD>" + headerName); out.println(" <TD>" + request.getHeader(headerName)); } out.println("</TABLE>\n</BODY></HTML>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
http://www.host01.com/article/jsp/00040003/0542422195127690.htm
发表评论
-
Java 代码块加载顺序
2015-07-19 13:29 607静态代码块 > 构造代码块 > 构造方法 pu ... -
Sprint JPA Test
2015-02-14 13:45 859@RunWith(SpringJUnit4ClassRunn ... -
WARNING: JMockit was initialized on demand, which may cause certain tests to fai
2013-08-05 09:04 2324When we using Jmokit and Junit ... -
Common log4j Console output when unit testing
2013-08-02 10:23 752#set up stdout appenderlog4j.ap ... -
JGroups 广播检查
2013-01-08 09:52 917先下载JGroup jar包 设置到环境变量CLASSPAT ... -
(转)一步步优化JVM4:决定Java堆的大小以及内存占用
2012-09-22 10:45 937一步步优化JVM4:决定Java堆的大小以及内存占用 htt ... -
让开发自动化: 用 Eclipse 插件提高代码质量
2012-08-02 22:25 1095让开发自动化: 用 Eclipse ... -
从 Java 代码到 Java 堆 理解和优化您的应用程序的内存使用
2012-08-01 09:29 1009从 Java 代码到 Java 堆 理解和优化您的应用程 ... -
Unable to read TLD from JAR file
2011-07-06 14:35 1366Today I try myBatis project Jpe ... -
Java Trouble shooting from IBM
2011-06-16 15:50 785Here is a good repository for J ... -
DES/CBC/PKCS5Padding密码
2011-05-10 10:06 3709DES/CBC/PKCS5Padding 加密解密 i ... -
【java】AES加密解密 AES/CBC/PKCS5Padding
2011-05-10 10:05 18188<Source>http://www.cnblog ... -
Tomcat JNDI configuration
2010-10-18 14:15 1128Tomcat JNDI configuration ... -
(转)设计与开发 JAX-WS 2.0 Web 服务
2010-10-11 08:33 1029https://www6.software.ibm.com/d ... -
初学者如何开发出高质量J2EE系统
2010-09-16 08:34 859(转自CSDN)初学者如何开发出高质量J2EE系统 S ... -
Jpetstore
2010-09-16 08:32 1055http://www.hudong.com/wiki/Jpet ... -
Google SAML2 SSO
2010-09-09 16:40 1536Source: http://code.google.com/ ... -
(Forward)Debug your Java code with ease using JPDA
2010-09-07 13:02 985Debug your Java code with ease ... -
(Forward)程序员从初级到中级10个秘诀
2010-08-22 11:06 812http://sd.csdn.net/a/20100820/2 ... -
为什么5%的技术人员开发效率是其他95%的20倍?
2010-08-22 10:54 870Source: http://sd.csdn.net/a/20 ...
相关推荐
在深入探讨Nginx请求头数据读取流程之前,首先理解HTTP请求报文的基本结构至关重要。一个典型的HTTP请求报文由三部分组成:请求行、请求头和请求体。请求行包含了请求方法(如GET、POST等)、请求URI和HTTP协议版本...
5.1 HTTP请求头概述 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外...
3. **读取HTTP请求头** 要获取HTTP请求头中的信息,可以使用`HttpServletRequest`接口提供的`getHeader(String name)`方法,如`request.getHeader("Content-Type")`,这将返回指定头部字段的值。 4. **读取HTTP...
JAVA读取HTTP请求
### HTTP请求头概述 在HTTP协议中,客户端(如浏览器)与服务器之间的通信是通过请求和响应来实现的。客户端发起请求时,除了指定请求类型(通常为GET或POST)外,还可以附加一系列请求头(Request Headers)来提供...
3. **读取客户端请求**:使用`Socket`对象的`getInputStream()`方法获取客户端请求的输入流,然后读取HTTP请求头和请求体。 4. **解析HTTP请求**:解析接收到的HTTP请求,提取目标URL、HTTP方法(GET、POST等)、...
JAVA获取HTTP请求头的方法示例 在 Java 网络编程中,获取 HTTP 请求头是非常重要的一步骤。HTTP 请求头是指在 HTTP 请求中发送的附加信息,它提供了关于请求的更多信息,如请求的方法、协议版本、客户端信息等。...
在HTTP协议中,请求由多个部分组成:请求行、请求头和可选的请求体。Boost.ASIO提供了一个名为`boost::asio::ip::tcp::socket`的类,你可以用它来创建一个TCP连接,从而发送HTTP请求。例如,你可以创建一个socket...
### C语言实现的HTTP请求知识点解析 #### 一、HTTP请求概述 在互联网通信中,HTTP(HyperText Transfer Protocol)是最常用的协议之一,用于客户端与服务器之间的数据交换。本示例代码展示了如何使用C语言来实现一...
JSP中的HttpServletRequest对象提供了读取HTTP请求头的方法,如`getHeader()`和`getHeaders()`。这允许开发者获取浏览器发送的信息,如用户代理(User-Agent)、 Accept-Language 等,从而实现定制化的响应。 **五...
3. **请求解析**:当客户端连接建立后,代理服务器需要读取HTTP请求头和数据,这通常涉及到对 `java.net.Socket` 的使用,以及对输入流(`InputStream`)的读取。 4. **请求转发**:解析出的HTTP请求将被转发到目标...
在C#编程中,我们需要经常处理HTTP请求,获取目标网址的HTTP头信息,例如状态码、响应时间、服务器类型等,这些信息对于分析网页状态、诊断网络问题以及构建Web应用程序非常有用。本文将深入探讨如何在C#中获取这些...
在IT行业中,网络编程是必不可少的一部分,而从HTTP请求中读取图片并将其保存到本地是一种常见的操作。这个过程涉及到网络请求、数据处理以及文件I/O等关键知识点。以下将详细解析这一过程。 首先,我们需要了解...
此外,如果需要发送POST请求,可以使用`QNetworkRequest`的`setHeader()`方法设置请求头,然后通过`QNetworkAccessManager::post()`方法发送。POST请求通常用于提交表单数据或其他实体主体。 总结来说,QT通过其...
- **4.3.2 实例:在 Servlet 中读取请求头**:演示如何读取 HTTP 请求头。 - **4.3.3 实例:输出所有的请求头**:展示如何输出所有请求头信息。 **4.4 访问 CGI 变量** - **4.4.1 CGI 概述**:通用网关接口的历史...
- HTTP请求由请求行(包含方法、URL和协议版本)、请求头和可选的请求体组成。 - 常见的HTTP方法有GET、POST、PUT、DELETE等。 - 请求头用于提供附加信息,如用户代理、内容类型、授权等。 3. **套接字编程**: ...