简单的HTTP协议——《图解http》第二章
2.1 HTTP协议用于客户端和服务端直接的通信
在一条通信线路上必定一端是客户端,另一端则是服务端。
2.2 通过请求和响应的交换达成通信。
HTTP协议规定,==请求从客户端发出,最后服务器响应该请求并返回==。
请求报文的构成
和解读
。
请求报文是由
请求方法
、请求URI
、请求协议版本
、可选的请求首部字段
和内容实体
构成的。
响应报文的构成和解读
响应报文由
协议版本
、状态码(表示请求成功或失败的数字代码)
、用以解释状态码的原因短语
、可选的响应首部字段
以及实体主体
构成。
2.3 HTTP是不保存状态的协议
协议对于发送过的请求或响应都不做持久化处理。目的是==在于更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计地如此简单==。
新情况下遭遇到的问题:比如购物网站的业务,用户登录到一家购物网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。所以网站为了能够掌握是谁发送的请求,需要保存用户的状态。
针对上面问题的解决方案:HTTP是无状态协议,但为了实现期望的保持状态功能,于是引入了cookie技术。
2.4 HTTP协议使用URI定位互联网上的资源。
指定请求URI的方式
- URI为完整的请求URI
- 在首部字段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》第二章相关推荐
- 《算法图解》第二章笔记与课后练习_选择排序算法
软件环境:Python 3.7.0b4 一.选择排序 # 找出数组中的最小元素 def findSmallest(arr):# 存储最小的值smallest = arr[0]# 存储最小元素的索引sm ...
- 计算机网络在线测试第二章,进行测验:-第2章-网络体系结构与网络协议测试.doc...
进行测验:-第2章-网络体系结构与网络协议测试.doc 142计算机网络 142-301214-J01062-1 作业 进行测验 第2章 网络体系结构与网络协议测试进行测验 第2章 网络体系结构与网络 ...
- 《图解HTTP》读书笔记--第2章简单的HTTP协议
写在前面:本文仅供个人学习使用,如有侵权,请联系删除.文章中所用图片绝大多数来源于<图解HTTP>,请读者支持原版. 文章目录 第 2章 简单的HTTP协议 2.1 HTTP协议用于客户端 ...
- 图解Http学习第二章
Http通信必须存在客户端和服务端 请求从客户端发出,服务器端接收后响应请求.(所以不难理解:首先是从客户端开始建立通信的) 发送请求报文示例: GET /index.htm HTTP/1.1 Ho ...
- 第二章网页前端基础与HTTP协议
第二章 网页前端基础与HTTP协议 爬虫需要遵循网络传输协议才能与服务器进行通信,当与服务器建立通信后,爬虫才能获取网页内容,从而获取想要爬取的内容.获取到的网页内容通常为HTML(HyperText ...
- 诙谐有趣的《UVM实战》笔记——第二章 一个简单的UVM验证平台
前言 某天白天在地铁上听鬼故事,结果晚上要睡觉时,故事里的情节都历历在目,给我鸡皮疙瘩起的~ 不过我倒是没有吓得睡不着,而是转念一想,为啥我学知识忘得很快,随便听的鬼故事却记得这么清楚咧? 那如果能像 ...
- Android PC投屏简单尝试- 自定义协议章(Socket+Bitmap)
代码地址 :https://github.com/deepsadness/MediaProjectionDemo 效果预览 投屏效果预览 简单说明: 使用Android MediaProjection ...
- 【Java数据结构与算法】第二章 单链表及简单面试题
第二章 单链表 文章目录 第二章 单链表 一.单链表 1.基本介绍 2.思路 3.代码实现 二.简单面试题 1.求单链表中有效节点的个数 2.查找单链表中的倒数第k个节点(新浪面试题) 3.单链表的反 ...
- Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原
Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则 扩展性 第一 ...
- 学习笔记 | Python编程从入门到实践 | 第二章变量和简单数据类型
前言 小白记录自己学习python的学习贴,如有错误请大佬指正 第二章是变量和简单数据类型的学习. 关于变量 在程序中随时可以修改变量的值,python将始终记录变量的最新值 变量名只能包含字母.数字 ...
最新文章
- Java如何拆分字符串
- java 时间间隔 工作日,计算Java中两个日期之间的工作日数
- vba sub是什么缩写_这些掌握了,你才敢说自己懂VBA
- typescript的命名空间
- 菜鸟php ajax,AJAX ASP/PHP
- PATB 1038. 统计同成绩学生(20)
- [POJ 3984] 迷宫问题(BFS最短路径的记录和打印问题)
- 转 利用java反射实现两个具有相同属性bean赋值
- 利用VBB仿真——实现LCD+数字键盘的密码验证
- DynamipsGUI小凡模拟器VPCS的DHCP功能
- EditPlus添加asm配置
- tensorflow-gpu深度学习安装的一系列问题——>解决方法汇总
- 计算机辅助设计基础试题,CAD基础知识自测题
- 2念整数(5分) 题目内容: 你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si
- 改纸盒大小_关于纸箱尺寸的一些知识
- RecyclerView中嵌套Edittext,添加监听的问题
- windows找不到文件 pythonw
- zynqsd的读写数据_【正点原子FPGA连载】 第十二章SD卡读写TXT文本实验-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...
- sql 数字转换为字符串补0
- 电脑桌面计算机怎么设置,电脑桌面字体大小怎么设置?