- HTTP协议:用于客户端和服务端之间的通信,能够明确区分哪一端是哪一端
- 客户端:请求访问文本或图像等资源的一端称为客户端
- 服务端:提供资源响应的一端称为服务端
- 请求和响应
- 请求报文:请求方法、请求URI、协议版本、可选的请求首部字段、内容实体
- 响应保本:协议版本、状态码、用以解释状态码的原因短语、可选的响应首部字段、主体
- HTTP是 __无状态__协议
- 协议对于发送过的请求和响应 不做持久化处理
- 为了快速的处理大量事务,确保协议的可伸缩性,减少服务器的CPU及内存消耗
- 为了实现期望的保持状态功能引入了Cookie技术
- 请求URI:定位资源
- URI为完整的请求URI
- 在首部字段Host中写明网络域名或IP地址
- 以*代替请求URI
- OPTIONS * HTTP/1.1 查询HTTP服务器端支持的HTTP方法种类
- 请求方法:告知服务器意图
- GET:获取资源(我想访问某个资源)
- 用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容
- POST:传输实体主体(我要告诉你某条信息)
- POST的主要目的不是获取响应的主体内容,而是传输实体的主体
- 指定URI接收传输的主体的处理结果
- PUT:传输文件(我要传给你某份文件)
- 在请求报文的主体中包含文件内容,然后保存到请求URI指定位置
- REST(REpresentational State Transfer)表征状态转移 标准
- HTTP/1.1的PUT方法自身不带校验机制,存在安全问题,一般Web网站不使用PUT,可配合Web APP的验证机制或采用REST标准的架构设计的Web网站
- HEAD:获得报文首部(把某相关信息告诉我)
- 与GET一样,只是不返回报文主体部分。用于确认URI的有效性及资源更新的日期时间等
- DELETE:删除文件(把某份文件删除掉)
- 与PUT相反的方法,按请求URI删除指定资源
- 同PUT一样不带校验机制
- OPTIONS:__询问支持的方法(URI指定的资源支持哪些方法)__HTTP/1.0不支持
- OPTIONS * HTTP/1.1
- Allow:GET,POST,HEAD,OPTIONS
- TRACE:__追踪路径(追踪发出请求之后会发生什么)__HTTP/1.0不支持
- 让Web服务器端将之前的请求通信环回给客户端,确认连接过程中发生的一系列操作
- 首部字段Max-Forwadrs:每经过一个服务器端就将该数值减1,减为0时停止传输,最后接收到请求的服务器端返回状态200 OK的响应
- 不怎么常用,容易引发XST(Cross-Site Tracing,跨站攻击)
- 从代理服务器路由中转时请求可能被篡改,客户端通过TRACE方法查询发送出去的请求是如何被加工修改/篡改的
- CONNECT:__要求用隧道协议连接代理(通过隧道进行传输)__HTTP/1.0不支持
- CONEECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。
- 使用SSL(Secure Socket Layer安全套接层)和TLS(Transport Layer Security传输层安全)协议把通信内容加密后经网络隧道传输
- 格式:CONNECT 代理服务器名:端口号 HTTP版本
- 粒子:CONNECT proxy.hackr.jp:8080 HTTP/1.1
- LINK:建立和资源之间的联系,HTTP/1.1废弃
- UNLINK:断开连接关系,HTTP/1.1废弃
- GET:获取资源(我想访问某个资源)
- HTTP协议的 持久连接
- 只要任意一端没有明确提出断开连接,则保持TCP连接状态
- 好处:减轻服务器端的负载,减少了TCP连接的重复建立和断开造成的额外开销,Web页面的显示速度提高了
- 在HTTP/1.1中,所有连接默认都是持久连接的
- HTTP协议的 管线化
- 同时并行发送多个请求,而不需要一个接一个地等待响应
- 管线化技术比持久连接还要快,请求数越多,时间差就越明显
- Cookie
- 通过在请求和响应报文中写入Cookie信息来控制客户端的状态
- 有Cookie之后
- 客户端发起请求,服务器生成Cookie保存请求并记住是哪个客户端发送的
- Cookie根据服务器发送的响应报文内的一个叫Set-Cookie首部字段信息,通知客户端保存Cookie
- 再下一次客户端发送请求时,客户端会添加Cookie后发送
- 服务端发现有发送Cookie,会检查Cookie是从哪一个客户端发送的链接请求,服务器对比之前保存的请求记录,得到之前的状态
- 没有Cookie信息的状态
- 请求报文:首部字段内无Cookie相关信息
- 响应报文:<Set-Cookie: sid=1342077140226724; path=/; expires=Wed,10-Oct-12 07:12:20 GMT>
- 存有Cookie信息的状态
- 请求报文:Cookie: sid=1342077140226724
- 补充:SID安全标识符
简述HTTP协议copyright《图解HTTP》读书笔记
最新推荐文章于 2022-03-02 11:43:11 发布