HTTP协议之URL与HTTP请求格式及相应格式
文章目录
一、URL
超文本传输协议(HTTP)的统一资源定位符将从因特网获取信息的五个基本元素包括在一 个简单的地址中:
- 传送协议。
- 层级URL标记符号(为[//],固定不变)
- 访问资源需要的凭证信息(可省略)
- 服务器。(通常为域名,有时为IP地址)
- 端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
- 路径。(以“/”字符区别路径中的每一个目录名称)
- 查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再 以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
- 片段。以“#”字符为起点,以http://www.luffycity.com:80/news/index.html?id=250&page=1 为例, 其中:
http,是协议; www.luffycity.com,是服务器;
80,是服务器上的网络端口号; /news/index.html,是路径;
?id=250&page=1,是查询。
大多数网页浏览器不要求用户输入网页中“http://”的部分,因为绝大多数网页内容是超 文本传输协议文件。同样,“80”是超文本传输协议文件的常用端口号,因此一般也不必 写明。一般来说用户只要键入统一资源定位符的一部分 (www.luffycity.com:80/news/index.html?id=250&page=1)就可以了。
由于超文本传输协议允许服务器将浏览器重定向到另一个网页地址,因此许多服务器允许用 户省略网页地址中的部分,比如 www。从技术上来说这样省略后的网页地址实际上是一个 不同的网页地址,浏览器本身无法决定这个新地址是否通,服务器必须完成重定向的任务。
UPL类的常用方法:
序号 | 方法 | 描述 |
---|---|---|
1 | String getProtocol() | 获取此URL的协议名称 |
2 | String getHost() | 获取此URL的主机名 |
3 | int getPort() | 获取此URL的端口名 |
4 | String getFile | 获取此URL的文件名 |
5 | int getDefaultPort() | 获取此URL的协议的默认端口号 |
6 | String getPath() | 获取此URL的路径部分 |
7 | String getQuery() | 获取此URL的查询部分,如果不存在为null |
8 | String getRef() | 获取此的锚定(也称为”参数“)URL |
9 | lnputStream openStream() | 打开与此URL的连接,并返回一个lnputStream,以便从该连接读取 |