IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 看懂Http协议,向计算机网络迈进一步~ -> 正文阅读

[网络协议]看懂Http协议,向计算机网络迈进一步~

在最近的工作中,涉及接口的开发比较多,其中就要经常和前端传过来的数据打交道,一方面我只需要在Controller层直接接好参数,做后续处理就够了,也不需要管前端请求内部很多细节组成是怎么样的,更不用管中间Http传递过程是怎么样的;但是作为一个半路出家的码农,一定要有刨根问底的精神,于是我抱着“到底啥是HTTP”这个疑问开始了一步步的探索和总结;

????在探索之前,我先做个比喻,两个网络就像两个人,一个张三一个李四;张三想要联系上李四:要借100块钱;于是张三要完成这件事一定要清楚几件事并且按照“借钱协议”来填表,表格长这样:

1借款人是?张三
2我从哪里来?张三家
3我要去哪里?李四家
4我要找谁?李四
5我要做啥子?借100块钱

好,可以开始这次的话题了:

? 一????什么是HTTP协议?

????官方解释:

??? HTTP 协议一般指 HTTP(超文本传输协议)。

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。

HTTP 是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。

??? HTTP 是一个基于 TCP/IP 通信协议来传递数据的(HTML 文件、图片文件、查询结果等)。

????我不知道别人看官方定义是不是可以一眼就懂,反正我是一看到官方定义就晕,还是得一边看一边脑补自己的理解:

????两个服务之间需要通讯,就需要根据HTTP协议来生成针对另一个Web服务器的HTTP请求报文,生成的报文是符合协议标准的,就可以完成通讯(理论上还需要其他很多条件,如TCP3次握手啥的,先一个一个来,避免劝退);

? ??二??? HTTP报文长啥样--Request请求报文:

?

(图片来自度娘)

第一眼看还是有点蒙,分割一下:

?????2.1?HTTP报文格式(可以类比为张三和李四的借钱协议表格

报文起始行

Start line

描述请求的基本信息

:请求方法,Url等

报文头信息

Header

采用键值对格式更详细说明报文,有时候有一些重要参数会放在header中;
报文空行作用就是个空行;

报文体信息

Body

消息正文,一般会放很多需要处理的参数;如将传递实体转换为json格式存到body中;

? ?这个报文就有点像张三写给李四的欠条,说清楚谁借钱,借多少,找谁借钱等等信息:

报文起始行

Start line

我是张三,我要找李四

报文头信息

Header

张三家:象牙村45号;

李四家:南山村49号;

报文空行

报文体信息:

Body

借100块钱;

????我粗糙的类比一下,这样理解,学习好像一点也不枯燥了呢;另外不要纠结例子哈,我只是想通过举例加深理解和提升学习乐趣;

????2.2?HTTP 报文起始行格式

换成表格对照一下:

Method空格请求URI空格HTTP Version换行
POST/chapter17/...HTTP/1.1

????2.3 说明

??? 1.请求方法:GET,POST,PUT,DELETE等,表示对资源的操作方式,比如借钱--GET;还--PUT(皮一下很开心);

??? 2.请求目标:通常是一个URI,说明请求方法需要请求操作的资源;

??? 3.版本号:表示报文使用的HTTP协议版本;

三 HTTP报文长啥样--Resonse响应报文:

(图片来自度娘)

?

3.1:格式同上,不做详述;

3.2 响应报文起始行:

?

换成表格对照一下:

Http版本空格状态码空格响应信息换行
HTTP/1.1200

OK

(李四:你的借钱(GET)需求我知道啦,OK(200)没问题啦;)

??3.3 说明:

??? 1.版本号:表示报文使用的HTTP协议版本;

??? 2.状态码:表示处理请求的状态,常用200-OK,404 Not Found等;

??? 3.相应信息:返回的状态码对应的信息,或者异常信息;

四 关于HTTP ?补充工作中需要的注意点:

????4.1 HTTP头字段说明:

????头部字段是key-value键值对形式,key和value之间用“:”分割,比如前后端分离时候经常需要用的,要和后端传输的数据类型:

Content-type:application/json

??? HTTP 头字段很灵活,不仅仅可以使用标准里的Host,Connection等已经存在的头字段,也可以任意添加自定义的头字段,这就给HTTP带来了可拓展性,比如我自己在业务中就会添加头信息来传输数据;

ApplicationId:“clbwielfucsdoyvfou4535”

????4.2 头字段使用注意事项:

1.字段名不区分大小写
2.字段名不允许出现空格
3.字段名可以使用连字符“-”,但是不能用下划线“_”(有的服务器不会解析)
4.字段名后面必须紧接着“:”,而不是空格
5.“:”后的字段值前可以有多个空格
6.字段顺序没有意义,也就是无需注重顺序;
7.字段原则上不能重复,除非这个字段本身有含义(如Set-Cookie)
8.规则很多,用着用着习惯之后就可以了;

五?常用的HTTP状态码及含义:

状态码的类别:

1XXInformational(信息性状态码)接受的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务器错误状态码)服务器处理请求出错

????至于每一个状态码是什么意思,每次碰见想不起来百度一搜就好了,用多了就都记住了;反正我最喜欢200和500,懂得都懂;

六?小结:

????关于HTTP小结到这,下一期预计会更HTTPS协议;

????其实关于HTTP,一直在更新迭代,原来是1.0,现在比较多是1.1;而目前随着发展,1.1有时候也满足不了需求,也就有了后来的2.0,技术在更新,在不断淘汰以前的,夯实底层知识和提升自主学习能力才是王道呀;

笨鸟慢飞,一个半路出家的码农,在不断夯实专业基本功的路上慢慢努力;

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:32:18  更:2022-03-06 13:33:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 13:21:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码