标签:元素 name 状态 第一个 class request htm http服务器 定向
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
HTTP协议的主要特点可概括如下:
1)使用火狐的firebug插件(右键->firebug->网络)
2)使用谷歌的“审查元素” -> 网络
3)使用系统自带的telnet工具(远程访问工具)
a)telnet localhost 8080 访问tomcat服务器
b)ctrl+] 回车 可以看到回显
c)输入请求内容
GET /day09/hello HTTP/1.1 Host: localhost:8080 |
d)回车,即可查看到服务器响应信息。
1 GET /day09/hello HTTP/1.1 -请求行 请求方式 资源位置URI 协议版本
2 Host: localhost:8080 --请求头(多个key-value对象)
3 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
4 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
5 Accept-Language: zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3
6 Accept-Encoding: gzip, deflate
7 Connection: keep-alive
8 --一个空行
9 name=Infaraway&password=123456 --(可选)实体内容
1 HTTP/1.1 200 OK --响应行 协议版本 状态码 状态描述 2 Server: Apache-Coyote/1.1 --响应头(key-vaule) 3 Content-Length: 24 4 Date: Fri, 30 Jan 2015 01:54:57 GMT 5 --一个空行 6 this is hello servlet!!! --实体内容
应用举例:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源;
POST方法:要求被请求服务器接受附在请求后面的数据,常用于提交表单。
1 Accept: text/html,image/* -- 浏览器接受的数据类型
2 Accept-Charset: ISO-8859-1 -- 浏览器接受的编码格式
3 Accept-Encoding: gzip,compress --浏览器接受的数据压缩格式
4 Accept-Language: en-us,zh- --浏览器接受的语言
5 Host: www.it315.org:80 --(必须的)当前请求访问的目标地址(主机:端口)
6 If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --浏览器最后的缓存时间
7 Referer: http://www.it315.org/index.jsp -- 当前请求来自于哪里
8 User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) --浏览器类型
9 Cookie:name=eric -- 浏览器保存的cookie信息
10 Connection: close/Keep-Alive -- 浏览器跟服务器连接状态。close: 连接关闭 keep-alive:保存连接。
11 Date: Tue, 11 Jul 2000 18:23:51 GMT -- 请求发出的时间
只有POST提交的参数会放到实体内容中
HttpServletRequest对象 作用是用于获取请求数据
核心的API:
请求行:
请求头:
实体内容:
GET方式: 参数放在URI后面
POST方式: 参数放在实体内容中
获取GET方式参数:
获取POST方式参数:
问题:但是以上两种不通用,而且获取到的参数还需要进一步地解析。
所以可以使用统一方便的获取参数的方式:
核心的API:
1 HTTP/1.1 200 OK --响应行 协议版本 状态码 状态描述
2 Server: Apache-Coyote/1.1 --响应头(key-vaule)
3 Content-Length: 24
4 Date: Fri, 30 Jan 2015 01:54:57 GMT
5 --一个空行
6 this is hello servlet!!! --实体内容
状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
常见状态代码、状态描述、说明:
1 Location: http://www.it315.org/index.jsp -表示重定向的地址,该头和302的状态码一起使用。 2 Server:apache tomcat ---表示服务器的类型 3 Content-Encoding: gzip -- 表示服务器发送给浏览器的数据压缩类型 4 Content-Length: 80 --表示服务器发送给浏览器的数据长度 5 Content-Language: zh-cn --表示服务器支持的语言 6 Content-Type: text/html; charset=GB2312 --表示服务器发送给浏览器的数据类型及内容编码 7 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --表示服务器资源的最后修改时间 8 Refresh: 1;url=http://www.it315.org --表示定时刷新 9 Content-Disposition: attachment; filename=aaa.zip --表示告诉浏览器以下载方式打开资源(下载文件时用到) 10 Transfer-Encoding: chunked 11 Set-Cookie:SS=Q0=5Lb_nQ; path=/search --表示服务器发送给浏览器的cookie信息(会话管理用到) 12 Expires: -1 --表示通知浏览器不进行缓存 13 Cache-Control: no-cache 14 Pragma: no-cache 15 Connection: close/Keep-Alive --表示服务器和浏览器的连接状态。close:关闭连接 keep-alive:保存连接
HttpServletResponse对象修改响应信息:
响应行:
响应头:
实体内容:
标签:元素 name 状态 第一个 class request htm http服务器 定向
原文地址:http://www.cnblogs.com/infaraway/p/6533183.html