1.1.HTTP URL:
HTTP URL [一种特殊的URI,包含了用于查找某个资源的信息],格式如下:
http://host[":"port][abs_path]
http表示要通过HTTP来定位网络资源,
host代表主机域名
port指定一个端口号
abs_path指定资源的URI;
1.2.HTTP请求:
HTTP请求包括:请求行、消息报头、请求正文三部分。
格式:Method Request-URI HTTP-Version CRLF[回车换行]
Method:请求方法
Request-URI:资源标识符
HTTP-Version:请求的HTTP协议版本
请求方法:
GET POST HEAD PUT DELETE TRACE CONNECT OPTIONS
1.3.HTTP 响应:
服务器接收和解释请求消息之后返回一个Http响应信息,Http相应信息包括:状态行、消息报头、响应正文三部分。
格式:HTTP-Version Status-Code Reason-Phrase CRLF
HTTP-Version 表示服务器 HTTP 协议的版本,Status-Code 表示服务器发回的响应状态代码,Reason-Phrase 表示状态代码的文本描述。
状态代码缩略:
1xx :指示信息
2xx :成功
3xx :重定向
4xx :客户端错误
5xx :服务器端错误
响应正文:就是服务器返回的资源内容
1.4.报头:
HTTP 消息报头包括普通报头、请求报头、响应报头、实体报头。
每一个报头域都是由名字 + “ : ” + 空格 + 值 组成,消息报头域的名字是大小写无关的。
1.4.1普通报头:
只有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的
消息。
Cache-Control:用于指定缓存指令,缓存指令是单向的 、独立的,HTTP1.0 使用的类似的报头域为 Pragma 。请求时的缓存指令包括: no-cache 、no-store、max-age 、max-stale、min-fresh、only-if-cached;响应时的缓存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage;
Date:普通报头域表示消息产生的日期和时间。
Connection:普通报头域允许发送指定连接的选项。指定连接是断开还是连续的。
1.4.2请求报头:
Accept 用于指定客户端接受哪些类型的信息
Accept-Charset 用于指定客户端接受的字符集 。(缺省全部字符集)
Accept-Encoding 用于指定可接受的内容编码。(缺省接收可各种内容编码)
Accept-Language 用于指定一种自然语言。 (缺省可接受各种语言)
Authorization 主要用于证明客户端有权查看某个资源。可要求服务器对客户进行验证
Host 主要用于指定被请求资源的 Internet 主机和端口号
User-Agent允许客户端将它的操作系统、浏览器和其它属性告诉服务器
1.4.3.响应报头
响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。
Location 响应报头域用于重定向接受者到一个新的位置。Location 响应报头域常用在更换域名的时候。
Server 响应报头域包含了服务器用来处理请求的软件信息。与 User-Agent 请求报头域是相对应的。
WWW-Authenticate 响应报头域必须被包含在401(未授权的)响应消息中,客户端收到 401 响应消息时候,并发送 Authorization 报头域请求服务器对其进行验证时,服务端响应报头就包含该报头域。
1.4.4 实体报头
一个实体由实体报头域和实体正文组成,实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息。
Content-Encoding 实体报头域被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的
附加内容的编码,因而要获得 Content-Type 报头域中所引用的媒体类型,必须采用相应的解码机制 。
Content-Language 实体报头域描述了资源所用的自然语言。(缺省提供给所有的阅读者)
Content-Length 实体报头域用于指明实体正文的长度,以字节方式存储的十进制数字来表示。
Content-Type 实体报头域用语指明发送给接收者的实体正文的媒体类型。
Last-Modified 实体报头域用于指示资源的最后修改日期和时间。
Expires 实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中的页面,可以使用Expires实体报头域指定页面过期的时间。如想让浏览器不要缓存页面,我们也可以利用Expires实体报头域,设置为0,[ jsp中写法如下:response.setDateHeader("Expires","0"); ]