HTTP协议用于客户端和服务器端之间的通讯git
在两台计算机之间,必有一端担任客户端角色,另外一端担任服务器端角色,有时角色可能会互换,HTTP协议可以明确区分哪端是客户端,哪端是服务器端github
由客户端发出请求报文,服务器端回复响应报文服务器
请求报文的构成网络
响应报文的构成frontend
注意:请求和响应报文的内容实体前都空一行
性能
HTTP协议自身不具有保存以前发送过的请求和响应的功能测试
为了解决一些须要保存状态的业务场景(好比保存登陆状态),HTTP/1.1引入了Cookie技术google
HTTP协议使用URI让客户端定位到资源spa
客户端发送请求时,须要将URI信息包含在请求报文内
https://www.google.cn/index.html
为例,指定URI的方式有如下两种:GET https://www.google.cn/index.html HTTP/1/1
GET /index.html HTTP/1/1 Host: www.google.cn
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
方法 | 描述 |
---|---|
GET | 【获取资源】请求指定的页面信息,并返回实体主体。 |
HEAD | 【得到报文首部】相似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 【传输实体主体】向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会致使新的资源的创建和/或已有资源的修改。 |
PUT | 【传输文件】从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 【删除文件】请求服务器删除指定的页面。 |
CONNECT | 【要求用隧道协议链接代理】HTTP/1.1协议中预留给可以将链接改成管道方式的代理服务器。 |
OPTIONS | 【询问支持的方法】容许客户端查看服务器的性能。 |
TRACE | 【追踪路径】回显服务器收到的请求,主要用于测试或诊断。 |
当创建一个TCP链接后,能够发送多个请求/响应。除非任意一端提出断开链接,不然一直保持TCP链接状态
管线化是指客户端不用等待响应可直接发送下一个请求,这样可以同时并行发送多个请求