By 一页编程
什么是http协议呢?
HTTP(HyperText Transfer Protocol)指的是超文本传输协议。超文本传输协议是一种基于请求与响应模式的无状态的应用层协议。
- 请与响应模式:简单说,就是用户发起请求,服务器做相关响应。
- 无状态:指的是第一次请求,跟第二次请求之间,并没有相关的关联。
- 应用层协议:指的是该协议工作在tcp协议之上。
URL
HTTP协议一般采用url作为定位网络资源的标识。URL格式如下,
http://[host]:[port]/[path]
每一个url需要以http冒号,两个反斜杠开头,那它后面有3个域:
1、host是一个表示合法的internet主机,域名或ip地址。
2、 port,指的是端口号。这一部分可以省略那默认端口号为80。
3、path,指的是资源在这样的主机或ip地址的服务器上,它所包含的内部路径。
我们举个例子:
http://yeahcoding.tech/index.html
指的是一页编程官网根目录下的index.html文件。
我们怎么理解URL呢?
其实url是通过HTTP协议存取资源的internet路径,它就像我们电脑里边的一个文件的路径一样,只不过这个文件不在电脑里,在internet上,那每一个URL,对应了internet上的一个数据资源。
HTTP操作方法
HTTP协议对资源呢,它有些操作的功能,最主要的HTTP协议的操作方法,一共有6个:
方法 | 说明 |
---|---|
GET | 获取URL位置的资源 |
HEAD | 获取位置资源的头部信息 |
POST | 向URL位置的资源后,增加新的数据 |
PUT | 向URL位置存储一个资源 |
PATCH | 向URL位置的资源进行局部更新 |
DELETE | 删掉URL位置所存储的相关资源 |
事实上,HTTP协议,通过URL对资源做定位,通过这样6个常用的方法,对资源进行管理,每一次操作都是独立无状态的,也就是这个操作跟下一次操作并没有关系。
在HTTP协议的世界里,网络通道跟服务器都是黑盒子,他能看到的就是url链接以及对url链接的相关操作。这
样理解大家是不是很清楚呢?
PATCH和PUT区别
我们举一个例子:
在URL的位置上有一组数据,这个数据叫UserInfo,表示的是用户信息,那它包含了很多字段,比如说包含了UserId,UserName等20个字段。需求是,用户只改变了自己的用户名,就是UserName, 而其他并没有改变,如何把这样的信息更新到服务器上?
采用PATCH方法
使用patch方法时,我们只需要使用HTTP协议,向URL重新提交UserName就行了。
采用PUT方法
PUT方法会覆盖URL位置所对应的资源,所以为了不覆盖掉这个资源,我们必须将userInfo所对应的20个字段,同时再次的提交到URL对应的位置上,包括你更新的这个UserName。如果恰巧你没有提交其他字段,只提交了UserName。那么这个URL对应的位置上就只剩Username的信息了。
比较PATCH跟PUT。我们发现PATCH方法的最大好处是节省网络带宽。当URL对应的资源是个很庞大资源的时候,我们只需要改其中一个,那我就用PATCH来去修改那一个,而不需要用PUT重新去提交那么多的资源。所以PATCH也是HTTP协议改良后的一个新增指令。