一、什么是HTTP协议
HTTP 协议即超文本传输协议,它是基于TCP/IP 协议通信的,因此它也是基于<客户端-服务器>模型运作的,是一个应用层协议,可以用它来传输服务器的各种资源,如文本、图片、音频等。
HTTP 协议的特点:
1.简单:当客户端向服务器请求服务时,只需传送请求方法和路径即可获取服务器的资源, 请求方法常用的有 GET、 HEAD、 POST 等, 每种方法规定了客户端与服务器通信的类型不同。
2.快捷:由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP 允许传输任意类型的数据对象,传输的类型由 Content-Type 加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求, 服务器处理完客户的请求,并收到客户的应答后,即断开连接,简单来说就是每进行一次 HTTP 通信,都要断开一次 TCP 连接, 可随着 HTTP 的普及,文档中包含大量图片的情况多了起来,每次请求完都要断开 TCP 连接,无疑增加通信量的开销, 为了解决 TCP的连接问题, HTTP1.1 提出了持久连接的方法,即任意一端只要没有明确提出断开连接,则保持 TCP 连接状态,这样子就就减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务端的负载。注意,在 HTTP1.1 版本之后才出现持久连接的方法。
5. 无状态: HTTP 协议是无状态协议,无状态是指协议对于事务处理没有记忆能力,即HTTP协议无法根据之前的状态进行本次的请求处理,这就意味着如果后续处理需要前面的信息,它必须重传数据,这样的情况可能导致 HTTP 协议传输的数据量增大,当然,凡事都有两面性,在另一方面,在服务器不需要先前信息时它的应答就较快,可以减少服务器的资源消耗,其实这种无状态对于用户来说也是不友好的,因此为了解决无状态的问题,引入了Cookie技术,这是一种可以让服务器知道用户上一次做了什么操作,并且记录下来,它是存储在客户端之中的,比如我们在淘宝上买东西,我们选择了几个商品,但是到了结账会跳转到另一个页面,此时如果服务器不知道我们选择了哪些商品,那怎么能结账成功呢? 所以Cookie 就是用来绕开 HTTP 的无状态性的“手段”之一, 服务器可以设置或读取Cookies 中包含信息,让服务器知道我们选择了什么商品,借此维护用户跟服务器会话中的状态,当然, Cookie 会被加密存储在客户端中,直到过期或者手动清除。
二、URL 与资源
URL 全称是 Uniform Resource Locator, 中文叫统一资源定位符, 是互联网上用来标识某一处资源的绝对地址,使用它我们就必然能找到资源,除非资源已经被转移了。 URI 是一个通用的概念,由两个子集组成,分别是 URL 和 URN, URL 是通过资源的位置来标识资源,而 URN 更高级一点,只需通过资源名字即可识别资源,与他们所处的位置是无关的,目前暂时还未推广 URN。大部分 URL 都会遵循 URL 的语法, 一个 URL 的组成有多个不同的组件,一个 URL的通用格式如:<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
| 组件 |
描述 |
| 方案 scheme |
指定访问服务器获取资源时使用哪种协议,有 HTTP、HTTPS、FTP、SMTP 等协议。 |
| 用户 user |
某些方案访问资源时候需要指定用户名,才有权限获取资源。 |

3859

被折叠的 条评论
为什么被折叠?



