URL是什么?
URL是统一资源定位符,有时也被俗称为网页地址。
如同在网络上的门牌,是因特网上标准的资源的地址(Address)。
在因特网的历史上,统一资源定位符的发明是一个非常基础的步骤。统一资源定位符的语法是一般的,可扩展的,它使用ASCII代码的一部分来表示因特网的地址。统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议。
统一资源定位符的标准格式如下:
协议类型://服务器地址(必要时需加上端口号)/路径/文件名
超文本传输协议(HTTP)的统一资源定位符将从因特网获取信息的五个基本元素包括在一个简单的地址中:
- 传送协议。
- 服务器。
- 端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
- 路径。(以“/”字符区别路径中的每一个目录名称)
- 查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
典型的统一资源定位符看上去是这样的:
http://zh.wikipedia.org:80/w/index.php?title=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes
其中:
- http,是协议;
- zh.wikipedia.org,是服务器;
- 80,是服务器上的网络端口号;
- /w/index.php,是路径;
- ?title=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes,是询问。
大多数网页浏览器不要求用户输入网页中“http://”的部分,因为绝大多数网页内容是超文本传输协议文件。同样,“80”是超文本传输协议文件的常用端口号,因此一般也不必写明。
---以上摘自中文维基百科
Qt开发中有一个类QUrl,它提供了一个使用Url的方便接口。
其多个构造函数中有一个QUrl(const QString & url),可接受字符串,在使用QNetworkCookieJar时会用到QUrl
使用setCookiesFromUrl(cookieList,QUrl("www.baidu.com")); 这样设置Cookies是无效的,无法从QNetworkCookieJar读取设置的Cookie
必须使用setCookiesFromUrl(cookieList,QUrl("http://www.baidu.com")); 带上协议才有效。