HTTP基础

两种直观的印象

1.浏览器打开一个http网页

2.发送一个请求,返回内容。

Http: 超文本传输协议、通信协议、通信规则,是一个应用层协议。

工作方式:htpp请求服务器,服务器响应html,浏览器渲染引擎显示。

请求报文:请求行 + Headers + Body(服务器要处理的)

响应报文: 状态行 + Headers + Body

HTTP的请求方法和状态码

GET:

获取资源;没有Body (取数据所以没有Body)。如果接口设计成GET,也有Body则是不规范的,Retrofit是会报参数异常错的:

POST

增加或者修改资源;一定有Body的;(不具有幂等性,即每次修改是新增一条数据)

PUT

只修改资源;有Body的;

(想修改使用Post和Put都可以,看web接口怎么设计)(具有幂等性,每次只会修改同一条数据)

DELEETE

删除资源;没有Body的;因为只要路径定位到就可以了,不需要Body;(具有幂等性)

HEAD

和GET的区别,GET响应是有Body的,HEAD是没有Body的,作用:用来获取信息,比如下载的时候,先获取资源信息,后续再GET方式下载。

状态码

1xx:临时性消息

2xx:成功

3xx: 重定向 (一般是服务器资源迁移了)

4xx:客户端错误 (服务器认为没有的)

5xx: 服务器错误 (很确定是服务端问题)

Http的Header和Body

作用:Http消息的元数据(metadata)

元数据:就是表示数据的数据、辅助数据、数据的属性

Host: api.github.com (这里并不是用来定位服务器的,因为定位是在请求前通过DNS域名查询ip定位iel,这里Host作用是给目标主机看的,因为目标主机可能运行了多个虚拟主机)

Content-Type:类型

  • text/html: Body是html文本,用于浏览器页面的响应
  • application/x-www-form-urilencoded:普通表单即纯文字表单,encoded URL格式。比如账密输入框,提交的是普通表单,用&划分的。

    其他传的是文件或者二进制,用的是特殊boundary分界字符串,但是分界同时会增加性能的损耗。

    汇总的ContentType: json格式方便扩展,和直接转换成json对象

    Content-Length: 长度

Transfer-Encoding: chunked 分块传输

Location:重定向

User-Agent: 用户代理;谁去发起请求,也就是客户端,可以区分是手机还是pc

Range/Accept-Ranges: 支持分段加载 (比如图片能不能分段加载,是要看服务器支不支持的,即有这个字段可以分段获取)

Cookie/Set-Cookie: 发送cookie/设置cookie

Authrization:授权信息

Cache:缓存 (缓存可能重复用到的数据)

Buffer: 缓冲 (待处理的数据,上游生成太快、下游消费太慢,稍后处理,也可能是预备着,在下游高峰时可以应对)

其他key:

Restful HTTP到底是什么

并不是协议,而是只是一个风格。正确使用Http就是Restful http。其实是后端的事情,要设计好接口。客户端按照接口设计来调用即可。

相关推荐
深圳市宝华视联3 小时前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
Raas1004 小时前
企业AI网关哪个好?MAI Gateway(魔芋企业级AI网关)入选2026年企业AI网关推荐清单
网络·人工智能·gateway·企业·ai网关·mai gateway
芯盾时代4 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(一)
网络·安全·web安全
深蓝海拓4 小时前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt
啦啦啦啦啦zzzz4 小时前
时间轮定时器
linux·服务器·网络·c++·定时器
ITyunwei09875 小时前
从 ITIL 视角量化-第三集:工单系统如何成为 ITSM 治理抓手?架构+量化
运维·网络·企业微信
DLYSB_5 小时前
让 PLC“开口说话”:基于 Modbus TCP 的声光语音告警设计与 Python 调试
python·网络协议·tcp/ip·报警灯
半桶水专家5 小时前
MQTT协议使用手册
网络
那年窗外下的雪.5 小时前
AIDC 学习日志|第 14 天|MAC Flapping 与 EVPN 多归属分层排障
网络·git·学习·macos·github·spine
2601_963282775 小时前
油田、工矿厂区 DMR 专网对讲系统:部署实施、干扰治理与防爆终端选型实战
网络·架构