HTTP协议应用编程
广州大学 Java网络编程 主讲:刘淼
6
具体协议相关
http://<user>:<password>@<host>:<por t>/<url-path>?<query>#<bookmark>
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
7
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
21
获取服务器响应消息的首部字段值
P505----P514 服务器响应消息构成
一个状态行:状态码+文本信息
状态码 P544 1XX 报告 2XX 请求成功 3XX重定向 4XX段名及其取值
Content-Type:指定实体内容类型,如text/html; charset=UTF-8 Content-Length:指定实体字节数 Content-Encoding:指定内容编码方式
POST请求方法
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
26
使用URLConnection类修改和检查首部域
HTTPHeaders.java
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
27
举例:UsingHttpURLConnection.java
2014年7月22日
2014年7月22日 广州大学 Java网络编程 主讲:刘淼 20
例15-1 通过URLConnection下载Web页
SourceView2.java
例15-2用正确的字符集下载Web页
EncodingAwareSourceViewer.java
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
12
URLEncoder类 P216
ASCII子集 解决不同平台上文件名表示差异 特殊字符编码问题
URLDecoder类
与URLEncoder类 功能正好相反
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
13
URI类
[scheme:]scheme-specific-part[#fragment]
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
19
使用URLConnection通信的一般步骤
1 构造一个URL对象 2 调用URL对象的openConnection( )方法获取 对应该URL的URLConnection对象 3 配置此URLConnection对象 4 读取首部字段 5 获得输入流读取数据 6 获得输出流写入数据 7 关闭连接
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
31
HTTP协议应用编程
4学时
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
1
内容
第3章 基本Web概念 第7章 URL和URI 第8章 Swing中的HTML 第15章 URLConnection
学习目标
明确HTTP协议的内容
命令 响应代码
掌握HTTP协议的应用编程模式,并能灵活运用 掌握URLConnection的使用
应用协议编程
使用常见的一种应用协议开发基于客户/ 服务器模式的应用软件 6学时 实验目的及要求 通过实验,熟悉HTTP协议或电子邮件协 议应用编程范型,并能熟练运用。
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
30
实验题目
1 Web浏览器 2 Web服务器 3 SMTP客户/服务器 4 POP3客户/服务器 实验报告的规范格式
8
相对URL
继承所在文档的协议、主机名和路径 具体例子
P62
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
9
标记语言介绍
祖先:SGML
Standard Generalized Markup Language 发明人:Charles Goldfarb---标记语言之父
HTML
举例 3.1.html文件
5
URL
HTTP 404 - NOT FOUND
用于标识因特网上的资源。指定访问资源的 协议,资源所在的机器名及资源位置。 语法
<scheme>://<user>:<password>@<host>:<port >/<url-path>;<params>?<query>#<fragment>
2014年7月22日
2014年7月22日 广州大学 Java网络编程 主讲:刘淼 24
HttpURLConnection
客户请求的7种方法P538
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
25
GET请求方法
GET +URI +HTTP版本 发送参数受到URL长度限制、不安全
HEAD请求方法
HEAD +URI +HTTP版本
重点
第3、7、15章
2014年7月22日 广州大学 Java网络编程 主讲:刘淼 2
第3章基本Web概念
在因特网上,最大最成功的应用非万维 网莫属。
发明:1989年,Tim Berners-Lee
万维网三个基本组成成分
HTML(Hypertext Markup Language)语言 HTTP(Hypertext Transfer Protocol)协议 URI(Uniform Resource Identifiers )
mailto:java-net@ news:ng.java urn:isbn:096139210x
解析URI
URISplitter.java
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
14
第8章 Swing 中的HTML
组件上的HTML
大多数基于文本的Swing组件,如标签、按 钮、菜单项等,都可以指定其文本为HTML, 组件会正确显示HTML。
JEditorPane
可以显示网页文件 见P248 例8-2
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
15
第8章 Swing 中的HTML
解析HTML
HTMLEditorKit.Parser
在HTML文档中寻找5种标记:起始标记、结束 标签、空元素标签、文本和注释。
HTMLEditorKit.ParserCallback
XML
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
10
第7章 URL和URI
Java 对应用层寻址支持
URL类 URI类
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
11
URL类
API文档 分解URL对象 P202
URLParser.java
用URL类检索资源
FetchURL.java
2014年7月22日 广州大学 Java网络编程 主讲:刘淼 22
Last-Modified:指明最后更新时间 Expires :指定缓存到期时间
一个实体:包含文件内容或服务器输出内容
举例:显示整个HTTP首部
AllHeaders.java
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
23
配置连接 P514----P522
7个实例字段,定义了客户段如何向服务器 发出请求
配置客户端请求首部
setRequestProperty(String name,String value) addRequestProperty(String name,String value)
Cookie If-Modified-Since Referer:指定链接到请求URL的URL
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
3
应用层寻址
URI
构成
Scheme: scheme-specific-part P57
具体类型有2种
URN-----Uniform Resource Name URL----- Uniform Resource Locator
2014年7月22日
提供了Parser类的6个回调方法
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
16
第8章 Swing 中的HTML
HTTP协议的无状态性
Cookie URL重写 隐藏表单
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
17
第15章 URLConnection
HTTP
提供访问Web服务器上的文件服务,Web浏 览器通过HTTP协议来请求文件或服务器端 的动态内容。 现在,HTTP应用又有新的方式
作为Web服务消息的传输协议,传输SOAP消息
2014年7月22日
广州大学 Java网络编程 主讲:刘淼
18
第15章 URLConnection
HTTP的工作方式
请求/响应模式
URLConnection
与URL的区别
一个单向,一个双向 可以查看服务器的响应消息的首部 可以设置客户端请求消息的首部
依赖TCP套接字通信
广州大学 Java网络编程 主讲:刘淼
4
URN
Urn:namespace:resource_name
Namespace:命名空间 resource_name:资源名称 IANA负责分配命名空间