POCO C++库学习和分析 -- URI (Uniform Resource Identifiers)
1. 概述
URI( RFC 3986)意为统一资源标记,通常被用来标志web上的资源。在Poco库中提供了POCO::URI、POCO::URIStreamFactory、POCO::URIStreamOpener类来对URI信息进行管理。其中POCO::URI用于进行URI操作和存储。URIStreamFactory可以打开一个URI资源,并且把该URI资源和一个输入流相关联。URIStreamOpener类用来设计成对URIStreamFactory进行管理。通过URIStreamFactory和URIStreamOpener可以把对所有资源的读取都适配一个流接口。
下面是Poco中Uri部分的类图。
2. POCO::URI
一个URI标志通常包括下列部分:Scheme:协议
Authority:包括了主机地址、端口、用户信息(通常指用户名/密码)
Path: 路径
Query: 查询
Fragment: 内部资源地址
下面是URI的一些例子:
http :// www.google.com / search ? q=POCO
| | | |
| | | |
Scheme Host Path Query
http :// appinf.com / poco/docs/Poco.URI.html # 5589
| | | |
| | | |
Scheme Host Path Fragment
ftp :// anonymous @ upload.sourceforge.com / incoming
| | | |
| | | |
Scheme User Host Path
POCO::URI类可以被看成是URI标记的集合。其接口定义如下:
class Foundation_API URI
{
public:
URI();
/// Creates an empty URI.
explicit URI(const std::string& uri);
/// Parses an URI from the given string. Throws a
/// SyntaxException if the uri is not valid.
explicit URI(const char* uri);
/// Parses an