10.13+HTTP协议

 io流。 嗯 好好复习去吧

 

 HTTP协议定义

l客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。
l使用telnet程序连上web服务器,并使用HTTP协议获取某个页面,快速了解 HTTP协议的作用。
l安装IE浏览器插件HttpWatch,查看IE浏览器通过HTTP协议获取某个页面。
HTTP协议简介 
lHTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。
lHTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。
lHTTP协议的版本:HTTP/1.0、HTTP/1.1
HTTP1.0 和HTTPxieyi 1.1的区别
l在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。
lHTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。
l使用telnet举例说明。
l一个好多同学搞不清楚的问题:
•一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求。
HTTP请求
l客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:
一个请求行、若干消息头、以及实体内容,如下所示
l举例:
GET /books/java.html HTTP/1.1
Accept: */*
Accept-Language: en-us
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/links.asp
User-Agent: Mozilla/4.0
Accept-Encoding: gzip, deflate
请求行用于描述客户端的请
求方式、请求的资源名称,
以及使用的HTTP协议版本号
 
消息头用于描述客户端请求
哪台主机,以及
客户端的一些环境信息等
 
lHTTP请求的细节——请求行
l请求行中的GET称之为请求方式,请求方式有:
POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
•常用的有: GET、 POST
•用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。
l不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:
如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
•GET /mail/1.html?name=abc&password=xyz HTTP/1.1
GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
如请求方式为POST方式,则可以在请求的实体
 
l用于HTTP请求中的常用头
Accept: text/html,image/*   
Accept-Charset: ISO-8859-1
Accept-Encoding: gzip,compress
Accept-Language: en-us,zh-cn
Host: www.it315.org:80
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
Referer: http://www.it315.org/index.jsp
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
•Cookie
Connection: close/Keep-Alive  
Date: Tue, 11 Jul 2000 18:23:51 GMT
lHTTP响应
l一个HTTP响应代表服务器向客户端回送的数据,它包括:
一个状态行、若干消息头、以及实体内容 。
l举例:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Content-Length: 2291
Content-Type: text/html
Cache-control: private
<HTML>
<BODY>
……
状态行用于描述服务器
对请求的处理结果。
 
消息头用于描述服务器
的基本信息,以及数据
的描述,服务器通过这
些数据的描述信息,可
以通知客户端如何处理
等一会儿它回送的数据。
 
代表服务器向客户端
lHTTP响应的细节——状态行
l状态行
格式: HTTP版本号 状态码 原因叙述<CRLF>
举例:HTTP/1.1 200 OK
l状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:
回送的数据
 
lHTTP响应细节——常用响应头
lHTTP请求中的常用响应头
•Location: http://www.it315.org/index.jsp
•Server:apache tomcat
•Content-Encoding: gzip
•Content-Length: 80
•Content-Language: zh-cn
•Content-Type: text/html; charset=GB2312
•Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
•Refresh: 1;url=http://www.it315.org
•Content-Disposition: attachment; filename=aaa.zip
•Transfer-Encoding: chunked 
•Set-Cookie:SS=Q0=5Lb_nQ; path=/search
•ETag: W/"7777-1242234904000"
•Expires: -1
Cache-Control: no-cache 
Pragma: no-cache  
Connection: close/Keep-Alive  
 
lHTTP实用头字段
lHTTP请求头字段
•Range头指示服务器只传输一部分Web资源。这个头可以用来实现断点续传功能。Range字段可以通过三种格式设置要传输的字节范围:
•Range: bytes=1000-2000
传输范围从1000到2000字节。
•Range: bytes=1000-
       传输Web资源中第1000个字节以后的所有内容。
•Range bytes=1000
       传输最后1000个字节。
lHTTP响应消息头字段
•Accept-Ranges:这个字段说明Web服务器是否支持Range支持,则返回Accept-Ranges: bytes,如果不支持,则返回Accept-Ranges: none.
•Content-Range:指定了返回的Web资源的字节范围。这个字段值的格式是:例子: Content-Range:1000-3000/5000
阅读更多
上一篇telnet的命令使用介绍
下一篇Servlet 总结
想对作者说点什么? 我来说一句

pppoe 协议协议协议协议

2011年03月27日 494KB 下载

mld mld 协议协议

2011年05月22日 222KB 下载

qq协议 vc vc

2010年03月26日 44KB 下载

H263协议H263协议H263协议H263协议

2011年06月28日 1.12MB 下载

没有更多推荐了,返回首页

关闭
关闭
关闭