http协议用户客户端和服务器之间的通信

http协议和TCP/IP协议族内的其他众多协议相同,用于客户端和服务器之间的通信
那么问题来个如果两台服务器之间一台服务器向另一台服务器进行接口请求那谁是客户端呢?所以这里的客户端和服务端是相对的概念,如果一端担任客户端的角色,另一端就需要担任服务器端的角色不是绝对的概念。

通过请求和响应的交换达成通信

http协议中已经规定了请求是从客户端发出,最后由服务端响应这个请求并返回。
下面来看一个请求中的报文,

GET /index.html HTTP/1.1
Host: baidu.cn

起始行的开头的GET表示请求访问服务器的类型,成为方法(method)对于前后端的同学最熟悉不过了。
随后的字符串index.html指明了请求访问的资源对象。也叫请求的URI,最后HTTP/1.1就是我们http的版本号,用来告诉客户端使用的http协议功能。

http是不保存状态的协议

HTTP是一种不保存状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存,也就是说HTTP这个级别。协议对于发送过的请求或者响应都不做持久化处理。


所以在使用http协议的时候,每当有新的请求发送时,就会有对应的新的响应产生,协议本身并不保留之前一切的请求或响应报文信息。这是为了更快的处理大量食物,确保协议的可伸缩性,而特意把http协议设计成如此简单的。
但是随着web的发展,因为没有转态在某些业务场景下因为无状态导致业务变得棘手了,例如,现在的电商平台,即时他在别的页面进行浏览商品的时候我们也需要保持该用户的登录状态,所以为了实现这个需求,http协议引入了Cookie技术。稍后会有详解。

请求URI定位资源

HTTP协议使用URI定位互联网上的资源,正是应为URI的特定功能,在互联网上任意位置的资源能访问到。

告知服务器意图的http方法

1、GET:获取资源
get方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。如果请求的是文本。那就保持原样返回。
2、POST:传输实体
POST方法用来传输实体的主体。
虽然用GET方法也可以传输实体的主体,但是一般不用GET方法进行传输,而是用POST方法。虽说POST和GET很相似。但是POST的主要目的不是获取响应的主题内容。
3、PUT:传输文件
PUT方法用来传输文件,就像FTP协议的文件上传一样。要求在请求报文的主题中包含文件内容。然后保存到请求URI指定的位置去。
4、HEAD:获取报文首部
HEAD方法和GET方法一样,只是不返回报文主体的部分。用于确认URI的有效性及更新日期等等。
5、DELETE:删除文件
DELET方法用来删除文件,是与PUT相反的方法。
DELET方法安请求URI删除指定的资源。
6、OPTIONS:询问支持得方法
OPTIONS方法用来查询针对URI指定的资源支持得方法。

持久连接节省通信量

在HTTP协议的初始版本中,没进行一次HTTP通行就要断开一次TCP链接。
以当年的通信情况来说,因为都是些内容很小的文本传输,所以即使这样也没有多大问题。可随着HTTP的普及。文档中包含有大量的图片的情况多了起来。
比如浏览器浏览一个包含多张图片的HTML页面时,在发送请求访问HTML页面资源的同时,也会请求HTML页面里面包含的其他资源,因此每次请求都会造成无谓的TCP连接建立和断开,增加通行量的开销。
持久连接
为了解决上诉TCP连接的问题,HTTP/1.1和一部分的HTTP/1.0想出了持久连接,也称为HTTP keep-alive的方法。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持TCP连接转态。
HTTP/1.1中,所有的连接默认都是持久连接,但是在HTTP/1.0中并没有标准化。虽然有一部分服务器通过非标准手段实现了持久化连接。但服务器端不一定能够支持持久化连接。毫无疑问,除了服务端,客户端也需要支持持久化连接。
管线化
持久化连接使得多数请求以管线化方式发送成为可能。从前发送请求后需等待并受到响应。才能发送下一个请求。管线化技术出现后。不用等待亦可直接发送下一个请求。
这样就能够做到同时并行发送多个请求。而不需要一个接一个地等待响应。

使用Cookie的状态管理

之前我们提过HTTP是无状态协议,它不对之前发生过的请求和响应的状态进行管理,不可否认,无状态协议当然有它的优点。由于不必保存状态,自然可以减少服务器的CPU及内存资源的消耗。从另一个侧面来说,也正是因为HTTP协议本身是非常的简单,所以才会被应用在各种场景。

为了解决这个问题,Cookie出现了,Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段,通知客户端保存Cookie,下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie之后发送出去。
服务器端发现客户端发送过来的Cookie后,回去检查究竟是从哪一个客户端发送来的请求,然后对比服务器上的记录,最后得到之前的转态信息。


前端必知必会HTTP请求系列(一)了解Web及网络基础
前端必知必会HTTP请求系列(二)简单一点的HTTP协议
前端必知必会HTTP请求系列(三)HTTP,报文内部的HTTP信息
前端必知必会HTTP请求系列(四)返回结果的HTTP状态码
前端必知必会HTTP请求系列(五)与HTTP协作的web服务器
前端必知必会HTTP请求系列(六)HTTP的首部
前端必知必会HTTP请求系列(七)确保Web安全的HTTPS
前端必知必会HTTP请求系列(八)确认访问用户身份的认证
前端必知必会HTTP请求系列(九)基于HTTP的功能追加协议
前端必知必会HTTP请求系列(十)构建Web内容的技术
前端必知必会HTTP请求系列(十一)Web攻击技术
有什么问题可以到评论区留言,持续关注,不断更新!

前端必知必会HTTP请求系列(二)简单一点的HTTP协议相关推荐

  1. 必知必会系列-JAVA虚拟机原理

    系列文章 必知必会系列-Spring技术原理 必知必会系列-JAVA虚拟机原理 必知必会系列-Redis技术原理 引言 随着技术的不断演进,在不同时间阶段都会有不同的技术产物,那么如何快速的学习和掌握 ...

  2. 读书笔记系列1——MySQL必知必会

    读书笔记系列1--MySQL必知必会 文章目录 读书笔记系列1--MySQL必知必会 MySQL官方文档:https://dev.mysql.com/doc/ 第一章 数据库基础 *2021.11.2 ...

  3. 【软考系统架构设计师】知识点必知必会系列汇总

    [软考系统架构设计师]知识点必知必会系列汇总 章节号 章节名 链接 第一章 安全性和保密性设计 https://blog.csdn.net/Last_Impression/article/detail ...

  4. 《渗透测试实践指南 必知必会的工具与方法 (原书第2版)》读书摘录

    ----------------------------------------------------------------------------分割线--------------------- ...

  5. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    为什么80%的码农都做不了架构师?>>>    本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...

  6. 性能调优之JMH必知必会2:JMH的基本用法

    性能调优之JMH必知必会2:JMH的基本用法 JMH必知必会系列文章(持续更新) 一.前言 二.JMH的基本用法 1.添加JMH依赖包 2.@Benchmark 2.@Warmup和@Measurem ...

  7. Java架构师必知必会,带走不谢

    可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地. 成为Java架构师,需要掌握哪些技能呢 ...

  8. c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战

    本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...

  9. php7.2 开启mcy扩展,phper必知必会(二)

    1.说说你对进程,线程以及协程的理解 进程:是系统进行资源分配和调度的基本单位,是基本操作系统结构的基础.进程是程序基本执行的实体.进程与进程之间是独立的,拥有完全独立的地址空间,进程的切换只发生在内 ...

最新文章

  1. Git 之四 分支管理
  2. Dell Caps Lock 切换大小写被窃取焦点问题解决办法
  3. springBoot JPA 数据库字段(实体类)带下划线在扩展findBy方法时出错的解决办法
  4. 注册规划师 计算机科学与技术,关于公布2018年度注册城乡规划师考试合格人员名单的通知...
  5. wpf 加载列表不卡顿_看高清视频,如何做到不卡顿?
  6. 创业当然比守业难太多
  7. matlab绘制奈奎斯特图
  8. 冰点文库下载器,免积分下载百度文库文档
  9. 自媒体平台批量文章采集
  10. centos7 单机安装 greenplum6
  11. Java链表-合并两个有序链表
  12. java开发未来三年职业规划
  13. 蚂蚁金服是不是中国最好的 FinTech(金融科技)公司
  14. cursor 鼠标样式的几种样式
  15. 肝完这篇 TCP/IP ,我就去面试去。
  16. 企业微信管理系统分析
  17. kanzi安装和使用
  18. 5分钟征服面试官系列-云计算方向
  19. 七人拼团系统开发模式,助力企业三个月新增超十万会员!
  20. HFS for Windows 9.0 安装注意事项 [2013-07-15更新]

热门文章

  1. 速卖通运营之如何提升商品动销率
  2. 中国电线电缆行业发展形势与投资规模预测报告2022版
  3. 全球及中国家庭用空气净化器行业供需分析及发展营利模式预测报告2022-2027年
  4. 粤桂粤黔谋定现代农业产业园 林裕豪:从玉农业一县一园签约
  5. 咸宁书写桂花产业-国情研究·万祥军:特色农业谋定大健康
  6. Python学习日记(六) 浅深copy
  7. 日期时间格式加减操作
  8. Windows服务BAT命令-安装、卸载、启动、停止
  9. 人生苦短,我用python,为什么选择python,python简介
  10. Buy Tickets(poj 2828)