当前位置: 首页 > news >正文

HTTP(超文本传输协议)学习

关于HTTP补学

 

一、HTTP能干什么

通过下图能够直观的看出:“交换数据 ”

二、HTTP请求例子

  • 一个 HTTP 方法,通常是由一个动词,像 GET、POST 等,或者一个名词,像 OPTIONS、HEAD 等,来定义客户端执行的动作。典型场景有:客户端意图抓取某个资源(使用GET);发送 HTML 表单的参数值(使用POST);以及其他情况下需要的那些其他操作。
  • 要获取的那个资源的路径——去除了当前上下文中显而易见的信息之后的 URL,比如说,它不包括协议(http://)、域名(这里的域名是developer.mozilla.org),或是 TCP 的端口(这里的端口是 80)。
  • HTTP 协议版本号。
  • 为服务端表达其他信息的可选标头。
  • 请求体(body),类似于响应中的请求体,一些像 POST 这样的方法,请求体内包含需要了发送的资源。 

  • HTTP 协议版本号。
  • 一个状态码(status code),来指明对应请求已成功执行或是没有,以及相应的原因。
  • 一个状态信息,这个信息是一个不权威、简短的状态码描述
  • HTTP 标头,与请求标头类似。
  • 可选项,一个包含了被获取资源的主体。

三、请求

HTTP 定义了一组请求方法用来指定对目标资源的行为。它们一般是名词,但这些请求方法有时会被叫做 HTTP 动词。最常用的请求方法是 GET 和 POST

  • GET 方法请求指定的资源。GET 请求应该只被用于获取数据。
  • POST 方法向服务器发送数据,因此会改变服务器状态。这个方法常在 HTML 表单中使用。

四、链接管理

HTTP 的传输协议主要依赖于 TCP 来提供从客户端到服务器端之间的连接。在早期,HTTP 使用一个简单的模型来处理这样的连接。这些连接的生命周期是短暂的:每发起一个请求时都会创建一个新的连接,并在收到应答时立即关闭。

4.1、短链接

4.2、长链接

在 HTTP/1.1 之前。或者,这被称之为一个 keep-alive 连接。

4.3、流水线

五、HTTP缓存

HTTP 缓存会存储与请求关联的响应,并将存储的响应复用于后续请求。

缓存分为:私有缓存共享缓存

私有缓存是绑定到特定客户端的缓存——通常是浏览器缓存。

共享缓存:代理缓存托管缓存

代理缓存:除了访问控制的功能外,一些代理还实现了缓存以减少网络流量 ——目前不需要关注代理缓存,

托管缓存:托管缓存由服务开发人员明确部署,以降低源服务器负载并有效地交付内容。示例包括反向代理、CDN 和 service worker 与缓存 API 的组合。

Cookie

HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据。浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。

HTTP会话

在像 HTTP 这样的客户端——服务器(Client-Server)协议中,会话分为三个阶段:

  1. 客户端建立一条 TCP 连接(如果传输层不是 TCP,也可以是其他适合的连接)。
  2. 客户端发送请求并等待应答。
  3. 服务器处理请求并送回应答,回应包括一个状态码和对应的数据。

从 HTTP/1.1 开始,连接在完成第三阶段后不再关闭,客户端可以再次发起新的请求。这意味着第二步和第三步可以连续进行数次。

引用:HTTP

http://www.lryc.cn/news/108693.html

相关文章:

  • 23年7月工作笔记整理(前端)
  • pytorch学习——正则化技术——权重衰减
  • iTOP-RK3588开发板Ubuntu 系统交叉编译 Qt 工程-命令行交叉编译
  • Java进阶——数据结构与算法之哈希表与树的入门小结(四)
  • DataFrame中按某字段分类并且取该分类随机数量的数据
  • 【c++】rand()随机函数的应用(一)——rand()函数详解和实例
  • iOS——Block回调
  • html学习6(xhtml)
  • UML-活动图
  • 跨境电商怎么做?Live Market教你创业及做大生意
  • Linux 4.19 和Linux 5.10 的区别
  • 学习单片机的秘诀:实践与坚持
  • Hum Brain Mapp:用于功能连接体指纹识别和认知状态解码的高精度机器学习技术
  • Ajax图书管理业务
  • 对于爬虫代码的优化,多个方向
  • ffmpeg推流卡顿修复
  • Java02-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类
  • 离散 Hopfield 神经网络的分类与matlab实现
  • opencv 30 -图像平滑处理01-均值滤波 cv2.blur()
  • 中小企业的数字化营销应该如何着手?数字化营销到底要怎么做?
  • 实数信号的傅里叶级数研究(Matlab代码实现)
  • oracle数据库巡检脚本
  • 服务注册中心consul的服务健康监控及告警
  • 【算法第十四天7.28】二叉树的最大深度,二叉树的最小深度 ,完全二叉树的节点个数
  • 网络安全设备-等保一体机
  • Kafka的配置和使用
  • 【C++】unordered_map在Windows和Linux上的不同行为
  • Apipost三方消息通知,接口变更不用愁
  • C语言 用数组名作函数参数
  • 每日一题(980. 不同路径 III)-回溯