http协议之request

一.请求的基本格式

请求的基本格式包括请求行,请求头,请求实体三部分。例如:
GET /img/bd_logo1.png HTTP/1.1
Accept: */*
Referer: http://www.baidu.com/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: www.baidu.com
Connection: Keep-Alive
Cookie: BAIDUID=B0DF0BDAD30649F69A8930D11BDB6DE8:FG=1;

(请求实体,不过此为GET请求故无请求实体)

1.请求行:

位于请求的第一行,记录了方法字段、URL字段、HTTP版本宇段。例如:
GET /img/bd_logo1.png HTTP/1.1
以上,GET是请求方法,/img/bd_logo1.png是请求URL,HTTP/1.1是请求协议及版本。

2.请求头:

位于请求行之后,独立空行之前的内容,例如:
Accept: */*
Referer: http://www.baidu.com/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: www.baidu.com
Connection: Keep-Alive
Cookie:a=1

请求头详解:
Accept:浏览器可接受的MIME类型,*/*表示所有类型。
Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。
Accept-Charset:浏览器可接受的字符集。
User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。
Host:初始URL中的主机和端口,若端口为默认的80,则不显示。
Connection:表示是否需要持久连接。如果Servlet看到这里的值为"Keep-Alive",或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。
Cookie:这是最重要的请求头信息之一,通常放在最后,因为内容可能很多。

以上是最常见的请求头,下面一些没怎么见到:
Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。
Content-Length:表示请求消息正文的长度。
From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。
If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304"Not Modified"应答。
Pragma:指定"no-cache"值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。
UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。

3.请求实体:

请求头及空行之后就是请求实体,只有POST方法的请求才有请求实体。

时间: 2024-10-12 19:34:57

http协议之request的相关文章

【报文】理解HTTP协议的Request/Response(请求响应)模型

[报文]理解HTTP协议的Request/Response(请求响应)模型 系列目录 [简介]"请求/响应"模型 http://www.cnblogs.com/engraver-lxw/p/7550514.html [原理]理解HTTP协议的Request/Response(请求响应)模型 http://www.cnblogs.com/engraver-lxw/p/7550691.html [报文]理解HTTP协议的Request/Response(请求响应)模型--当前 http:/

Http协议之Request和Response

GET / HTTP/1.1表示向服务器用GET方式请求首页,使用HTTP/1.1协议 Cache-Control作用: 用来指定Response-Request遵循的缓存机制.各个指令含义如下Cache-Control:Public 可以被任何缓存所缓存()Cache-Control:Private 内容只缓存到私有缓存中Cache-Control:no-cache 所有内容都不会被缓存 Accept作用: 浏览器端可以接受的媒体类型,例如: Accept: text/html 代表浏览器可以

HTTP协议中request和response常用方法

一.request的常用方法:1.获取请求的方式 getMethod()2.目录的路径 getContextPath()3.获取servlet路径 getServletString()4.获得get请求参数 getQueryString()5.获取请求的url getRequestURL() getRequestURI()6.获得协议版本 getProtocol()7.获取客户的ip getRemoteAddr()8.获取请求参数的通用方式 1.getParameter(Sring name)

Servlet,HTTp协议及Request

## Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象 * 将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可 * Http

http协议、servlet、web容器

http协议是一种数据传输协议,主要用于客户端与服务器之间数据的传递.工作原理是:客户端通过http协议发出request(由请求头.请求行.空格.消息体组成),当请求传到服务器时有两种情况:第一,当生成的网页是静态网页时,服务器直接通过http协议返回给客户端response(由响应头.响应行.空格.消息体组成),就这样,整个流程结束.第二,当服务器接收到需要生成动态网页的 命令时,服务器自己不能生成,需要借助web容器生成,servlet就是依附于web容器的一项技术,它避开了CGI技术的不

用NIO实现http协议

先来看一下本篇博文的目录: 一:简介Nio 二:Nio的好处 三:关于http协议 四:代码实现 五:总结 一:简介Nio 我们都知道io流,那么NIO是什么呢?本篇博文将会带你一探NIO,NIO的全称叫做New IO,顾名思义也就是全新的IO流,从Java Api 1.4版本开始发行的,nio提供了完全不同的工作体制,java nio的IO模型是同步非阻塞,也就是当用户发起一个IO操作后,边可等待边可返回,但是需要进程不断的询问是否传输完毕,这就引入了不必要的cpu浪费,但是总体它的效率是要高

HTTP协议介绍(SERVLET)

本文是servlet的入门篇,主要简单介绍下http协议 1.什么是HTTP _ 1.http协议:_1. 复杂解释:   http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用. 2. 简单说:   对浏览器客户端 和 服务器端 之间数据传输的格式规范. 3. 协议版本:   http1.0:当前浏览器客户端与服务器端建立连接之后,只能发送一次

JSP内置对象--request对象

本文主要介绍JSP中的request对象 request对象的主要方法: setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值 getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例 getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组 getCharacterEncoding()

第一讲_HTTP协议详解

HTTP协议介绍: 绝大多数的Web开发,都是构建在Http协议之上的Web应用,理解和掌握Http协议,将有助于我们更好的学习和掌握Servlet和Jsp技术,以及其他相关的Web开发技术. 网络基础知识: 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. ISO/OSI(Open System Interconnection)七层参考模型:应用层(处理网络应用