2.1 HTTP协议用于客户端和服务端直接的通信
在一条通信线路上必定一端是客户端,另一端则是服务端。

2.2 通过请求和响应的交换达成通信。
HTTP协议规定,==请求从客户端发出,最后服务器响应该请求并返回==。

请求报文的构成解读

请求报文是由请求方法请求URI请求协议版本可选的请求首部字段内容实体构成的。

响应报文的构成和解读

响应报文由协议版本状态码(表示请求成功或失败的数字代码)用以解释状态码的原因短语可选的响应首部字段以及实体主体构成。

2.3 HTTP是不保存状态的协议
协议对于发送过的请求或响应都不做持久化处理。目的是==在于更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计地如此简单==。

新情况下遭遇到的问题:比如购物网站的业务,用户登录到一家购物网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。所以网站为了能够掌握是谁发送的请求,需要保存用户的状态

针对上面问题的解决方案:HTTP是无状态协议,但为了实现期望的保持状态功能,于是引入了cookie技术

2.4 HTTP协议使用URI定位互联网上的资源。
指定请求URI的方式

  1. URI为完整的请求URI
  2. 在首部字段Host中写明网络域名或IP地址

2.5 告知服务器意图的HTTP方法

方法名 作用 说明
GET 获取资源 侧重获取
POST 传输实体主体 侧重发送
PUT 传输文件 一般不使用,存在安全性问题
HEAD 获取响应报文首部 用于确认URI的有效性及资源更新的日期等
DELETE 删除文件 一般不使用
OPTIONS 询问支持的方法 返回例如GET、POST、HEAD等
TRACE 追踪路径 一般不使用,且易引发XST(跨站追踪)攻击
CONNECT 要求用隧道协议连接代理 主要使用SSL和TLS协议把通信内容加密后经网络隧道传输。

2.6 使用方法下达命令

2.7 持久连接节省通信量

HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。而使用浏览器浏览一个包含多张图片的HTML页面时,在发送请求访问HTML页面时也会请求该HTML页面里包含的其他资源。因此每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。

2.7.1 持久连接
HTTP/1.1中,所有的连接默认都是持久连接(除非哪一方提出断开连接否则不会断开TCP连接),但在HTTP/1.0内未标准化。

2.7.2 管线化
不用等待响应可直接发送下一个请求。比持久连接更快。

2.8 使用Cookie的状态管理

转载于:https://www.cnblogs.com/foxNike/p/6337282.html

简单的HTTP协议——《图解http》第二章相关推荐

  1. 《算法图解》第二章笔记与课后练习_选择排序算法

    软件环境:Python 3.7.0b4 一.选择排序 # 找出数组中的最小元素 def findSmallest(arr):# 存储最小的值smallest = arr[0]# 存储最小元素的索引sm ...

  2. 计算机网络在线测试第二章,进行测验:-第2章-网络体系结构与网络协议测试.doc...

    进行测验:-第2章-网络体系结构与网络协议测试.doc 142计算机网络 142-301214-J01062-1 作业 进行测验 第2章 网络体系结构与网络协议测试进行测验 第2章 网络体系结构与网络 ...

  3. 《图解HTTP》读书笔记--第2章简单的HTTP协议

    写在前面:本文仅供个人学习使用,如有侵权,请联系删除.文章中所用图片绝大多数来源于<图解HTTP>,请读者支持原版. 文章目录 第 2章 简单的HTTP协议 2.1 HTTP协议用于客户端 ...

  4. 图解Http学习第二章

    Http通信必须存在客户端和服务端 请求从客户端发出,服务器端接收后响应请求.(所以不难理解:首先是从客户端开始建立通信的) 发送请求报文示例: GET /index.htm  HTTP/1.1 Ho ...

  5. 第二章网页前端基础与HTTP协议

    第二章 网页前端基础与HTTP协议 爬虫需要遵循网络传输协议才能与服务器进行通信,当与服务器建立通信后,爬虫才能获取网页内容,从而获取想要爬取的内容.获取到的网页内容通常为HTML(HyperText ...

  6. 诙谐有趣的《UVM实战》笔记——第二章 一个简单的UVM验证平台

    前言 某天白天在地铁上听鬼故事,结果晚上要睡觉时,故事里的情节都历历在目,给我鸡皮疙瘩起的~ 不过我倒是没有吓得睡不着,而是转念一想,为啥我学知识忘得很快,随便听的鬼故事却记得这么清楚咧? 那如果能像 ...

  7. Android PC投屏简单尝试- 自定义协议章(Socket+Bitmap)

    代码地址 :https://github.com/deepsadness/MediaProjectionDemo 效果预览 投屏效果预览 简单说明: 使用Android MediaProjection ...

  8. 【Java数据结构与算法】第二章 单链表及简单面试题

    第二章 单链表 文章目录 第二章 单链表 一.单链表 1.基本介绍 2.思路 3.代码实现 二.简单面试题 1.求单链表中有效节点的个数 2.查找单链表中的倒数第k个节点(新浪面试题) 3.单链表的反 ...

  9. Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原

    Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则  扩展性 第一 ...

  10. 学习笔记 | Python编程从入门到实践 | 第二章变量和简单数据类型

    前言 小白记录自己学习python的学习贴,如有错误请大佬指正 第二章是变量和简单数据类型的学习. 关于变量 在程序中随时可以修改变量的值,python将始终记录变量的最新值 变量名只能包含字母.数字 ...

最新文章

  1. Java如何拆分字符串
  2. java 时间间隔 工作日,计算Java中两个日期之间的工作日数
  3. vba sub是什么缩写_这些掌握了,你才敢说自己懂VBA
  4. typescript的命名空间
  5. 菜鸟php ajax,AJAX ASP/PHP
  6. PATB 1038. 统计同成绩学生(20)
  7. [POJ 3984] 迷宫问题(BFS最短路径的记录和打印问题)
  8. 转 利用java反射实现两个具有相同属性bean赋值
  9. 利用VBB仿真——实现LCD+数字键盘的密码验证
  10. DynamipsGUI小凡模拟器VPCS的DHCP功能
  11. EditPlus添加asm配置
  12. tensorflow-gpu深度学习安装的一系列问题——>解决方法汇总
  13. 计算机辅助设计基础试题,CAD基础知识自测题
  14. 2念整数(5分) 题目内容: 你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si
  15. 改纸盒大小_关于纸箱尺寸的一些知识
  16. RecyclerView中嵌套Edittext,添加监听的问题
  17. windows找不到文件 pythonw
  18. zynqsd的读写数据_【正点原子FPGA连载】 第十二章SD卡读写TXT文本实验-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...
  19. sql 数字转换为字符串补0
  20. 电脑桌面计算机怎么设置,电脑桌面字体大小怎么设置?

热门文章

  1. Python 代理类实现和控制访问与修改属性的权限
  2. python web开发 HTML基础
  3. 使用CNN进行情感分类
  4. LeetCode 12/13 罗马数字与整型互转(哈希,贪心)
  5. LeetCode 523. 连续的子数组和(求余 哈希)
  6. php怎么获取分类数,php 两种获取分类树的方法
  7. matlab玫瑰,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神
  8. Kafka高性能相关
  9. ACL20 | 让笨重的BERT问答匹配模型变快!
  10. 美团配送系统架构演进实践