HTTP 简略整理 ------1、HTTP 概述

HTTP 是超文本传输协议,用于传输诸如 HTML 的超媒体文档的协议。

基于 HTTP 的组件系统

HTTP是一个client-server(客户端-服务器)协议:请求通过一个实体被发出,实体也就是用户代理。

简单来说就是三个;

  1. 客户端:user-agent
  2. Web服务端
  3. 代理(Proxies)
    前两个没什么可讲的,第三个在我们进行开发的时候会经常碰到。
    代理有如下几种作用:
    。缓存(可以是公开的,也可以是私有的,像浏览器缓存)
    。过滤(像反病毒扫描,家长控制)
    。负载均衡(让多个服务器服务不同的请求)
    。认证(对不同资源进行权限管理)
    。日志记录(允许存储历史信息)

HTTP 的基本性质

  • HTTP 是简单的
  • HTTP 是可扩展的
  • HTTP 是无状态,有会话的(在同一个连接中,两个执行成功的请求之间是没有关系的。使用HTTP的头部扩展,把Cookies添加到头部中,创建一个会话让每次请求都能共享相同的上下文信息,达成相同的状态。注意,HTTP本质是无状态的,使用Cookies可以创建有状态的会话。)

HTTP 能控制什么

以下是可以被HTTP控制的常见特性。

  • 缓存
    文档如何缓存能通过HTTP来控制。服务端能告诉代理和客户端哪些文档需要被缓存,缓存多久,而客户端也能够命令中间的缓存代理来忽略存储的文档。

  • 开放同源限制
    为了网络安全,浏览器强制对Web网站做了分割限制。只有来自于相同来源的网页才能获取网站的全部信息。HTTP 可以通过修改头部来开放这样的限制。

  • 认证
    基本的认证功能可以通过 HTTP 提供,使用 Authenticate相似的头部即可,或用 HTTP Cookies 来设置指定的会话。

  • 代理和隧道
    通常情况下,服务器和/或客户端是处于内网的,对外网隐藏真实 IP 地址,因此 HTTP 请求就要通过代理越过这个网络屏障。

  • 会话
    使用HTTP Cookies 允许你用一个服务端的状态发起请求,这就创建了会话。

HTTP 流

当客户端想要和服务端进行信息交互时(服务端是指最终服务器,或者是一个中间代理),过程表现为下面几步:

  1. 打开一个TCP连接:TCP连接被用来发送一条或多条请求,以及接受回应消息。客户端可能打开一条新的连接,或重用一个已经存在的连接,或者也可能开几个新的TCP连接连向服务端。
  2. 发送一个HTTP报文:HTTP报文(在HTTP/2之前)是语义可读的。在HTTP/2中,这些简单的消息被封装在了帧中,这使得报文不能被直接读取,但是原理仍是相同的。
  3. 读取服务端返回的报文信息
  4. 关闭连接或者为后续请求重用连接。

HTTP 报文

HTTP 报文有两种类型,请求报文和回应报文。

请求报文
在这里插入图片描述

请求报文由以下元素组成:

  1. 一个HTTP的method(请求方法)
  2. 要获取资源的路径
  3. HTTP协议版本号
  4. 可选的请求首部字段和内容实体

回应报文
在这里插入图片描述

回应报文包含的元素:

  1. HTTP协议版本号
  2. 一个状态码(status code),来告知对应请求执行成功或失败,以及失败的原因。
  3. 一个状态信息
  4. 可选的响应首部字段及实体主体

HTTP是一种简单可扩展的协议,其Client-Server的结构以及轻松扩展头部信息的能力使得HTTP可以和Web共同发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值