如图,这是 http://www.someSchool.edu/someDepartment/home.index 请求的请求头,通过观察这个 HTTP 报文我们就能够学到很多东西,首先,我们看到报文是用普通 ASCII 文本书写的,这样保证人能够可以看懂 。然后,我们可以看到每一行和下一行之间都会有换行,而且最后一行(请求头部后)再加上一个回车换行符 。
每个报文的起始行都是由三个字段组成:方法、URL 字段和 HTTP 版本字段 。
文章插图
HTTP 请求方法HTTP 请求方法一般分为 8 种,它们分别是
- GET 获取资源,GET 方法用来请求访问已被 URI 识别的资源 。指定的资源经服务器端解析后返回响应内容 。也就是说,如果请求的资源是文本,那就保持原样返回;
- POST 传输实体,虽然 GET 方法也可以传输主体信息,但是便于区分,我们一般不用 GET 传输实体信息,反而使用 POST 传输实体信息,
- PUT 传输文件,PUT 方法用来传输文件 。就像 FTP 协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置 。但是,鉴于 HTTP 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 W eb 网站不使用该方法 。若配合 W eb 应用程序的验证机制,或架构设计采用REST(REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法 。
- HEAD 获得响应首部,HEAD 方法和 GET 方法一样,只是不返回报文主体部分 。用于确认 URI 的有效性及资源更新的日期时间等 。
- DELETE 删除文件,DELETE 方法用来删除文件,是与 PUT 相反的方法 。DELETE 方法按请求 URI 删除指定的资源 。
- OPTIONS 询问支持的方法,OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法 。
- TRACE 追踪路径,TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方法 。
- CONNECT 要求用隧道协议连接代理,CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信 。主要使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加 密后经网络隧道传输 。
文章插图
HTTP 请求 URLHTTP 协议使用 URI 定位互联网上的资源 。正是因为 URI 的特定功能,在互联网上任意位置的资源都能访问到 。URL 带有请求对象的标识符 。在上面的例子中,浏览器正在请求对象 /somedir/page.html 的资源 。
我们再通过一个完整的域名解析一下 URL
比如 http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument 这个 URL 比较繁琐了吧,你把这个 URL 搞懂了其他的 URL 也就不成问题了 。
首先出场的是 http
文章插图
http://告诉浏览器使用何种协议 。对于大部分 Web 资源,通常使用 HTTP 协议或其安全版本,HTTPS 协议 。另外,浏览器也知道如何处理其他协议 。例如,mailto: 协议指示浏览器打开邮件客户端;ftp:协议指示浏览器处理文件传输 。
第二个出场的是 主机
文章插图
www.example.com 既是一个域名,也代表管理该域名的机构 。它指示了需要向网络上的哪一台主机发起请求 。当然,也可以直接向主机的 IP address 地址发起请求 。但直接使用 IP 地址的场景并不常见 。
第三个出场的是 端口
文章插图
我们前面说到,两个主机之间要发起 TCP 连接需要两个条件,主机 + 端口 。它表示用于访问 Web 服务器上资源的入口 。如果访问的该 Web 服务器使用HTTP协议的标准端口(HTTP为80,HTTPS为443)授予对其资源的访问权限,则通常省略此部分 。否则端口就是 URI 必须的部分 。
上面是请求 URL 所必须包含的部分,下面就是 URL 具体请求资源路径
第四个出场的是 路径
文章插图
/path/to/myfile.html 是 Web 服务器上资源的路径 。以端口后面的第一个 / 开始,到 ? 号之前结束,中间的 每一个/ 都代表了层级(上下级)关系 。这个 URL 的请求资源是一个 html 页面 。
推荐阅读
- 碟仙恐怖吗 玩碟仙会有什么后果
- 腾讯算法:判断一个数是否在40亿个整数中?最后附java代码
- 世界上有没有食人花这种植物 世界上有没有食人花和食人
- 语音识别概论
- 宇宙最早的生物是什么 人类可能是宇宙中第一个文明
- 宇宙生命之谜是一篇介绍科学家探索宇宙生命的什么 科学家经过归纳发现,地球上之所以有生命存在
- 陕西村庄离奇消失真相 1987年陕西一个村庄离奇消失是真的
- 宇宙有没有开始?简述一下宇宙大爆炸理论 宇宙大爆炸理论认为
- 阿斯麦|19亿一台!ASML下一代革命性EUV光刻机:卖爆了
- 汽车电瓶什么牌子好呢