为了更好的了解HTTP协议,我们今天来聊一聊HTTP协议的结构。
HTTP协议相当于客户端和服务端的桥梁,主要通过发送请求和响应回复来实现客户端和服务端的通信。
发送请求主要由请求方法、请求URI,协议版本、请求首部字段以及内容实体组成。请求首部字段、内容实体会在后面的文章中逐一讲解,今天先看一下其他的。
提到URI(统一资源标识符),或许有很多童鞋会想到URL。URL是使用Web浏览器等工具访问Wen页面的地址。URI是Uniform Resource Identifier 的缩写,下面来看看这三个词的含义:
Uniform:规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式。另外,加入新增的协议方案(如http: 或 ftp:)也更容易;
Resource:资源的定义是“可标识的任何东西”。除了文档文件、图像或服务(例如当天的天气预报)等能够区别于其他类型的,全都可作为资源。另外,资源不仅可以是单一的,也可以是多数的集合体;
Identifier:表示可标识的对象。也称为标识符。
总而言之,URI就是某个协议方案表示的资源的定位标识符。以百度页面为例,URI它就是一个具体的地址信息,而URL就是https://www.baidu.com/这个地址。
它的作用也很明显,就是当客户端请求访问资源而发送请求时,URI需要将作为请求报文中的请求URI包含在内,让客户端定位到资源。
在响应报文中,起始行开头的HTTP/1.1,表示服务器对应的版本。
紧接着的Code:200表示请求的处理结果状态码以及原因。下一行则是创建响应的时间,是首部字段的一个属性。
接着空行分隔,之后的内容实体称为资源实体的主体。
请求方法、协议版本、状态码、解释状态码的原因短语、可选的首部字段以及实体主体,这些组成了响应报文。也会在后面的文章中一一讲解。
细心的小伙伴可能会发现,我们在查看请求时,很多请求都会有一个Cookie的参数,这是为什么呢?要了解这个,就必须看一下HTTP协议的设计原理。
HTTP协议设计就是为了减少服务器的CPU及内存资源的损耗,更好地处理大量事务,确保协议的可伸缩性。因此,它是无状态保存协议。
可是新的问题来了,实际应用中,我们很多时候都是需要保存状态的,实际上各大网站都是这么做的。既不能让客户端去管理大量的服务器状态,还要使用HTTP协议,于是,引入了Cookie技术解决这些问题。
今天的分享就到这里结束了,下一期我们会聊聊HTTP协议会使用哪些方法,喜欢的小伙伴继续关注哦!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。