网络10:关于http协议的requset 和 repose的结构

1.http request

1.1结构

request 报文的结构主要包括三部分:请求行、请求报头、请求正文

1.1.1 请求行

关于请求行中,一般有三个属性,第一个是Method,请求的方法,一般有2种,POST和GET

第二个是url地址,要请求目标的地址

第二个是请求的HTTP版本:一般是 HTTP1.0 HTTP1.1 HTTP1.2

1.1.2 请求报头

请求报头中大部分信息是键值对。

key:value key代表属性 value代表是什么属性

1.1.3 请求正文

请求正文就是请求的数据(有效载荷)

1.1.4 之间的关系

读取数据的时候是按行读取的,用 /r/n(回车换行符)来分割每一行,但是存储的时候是直接存储的,我们把 /r /n 当做字符,可以直接存储

1.2 怎样分离报头(请求行,请求报头)和有效载荷(请求正文)

每一行的结束都是 /r /n,我们用空行的方法

1.3 我们确保怎样读取完整的正文呢?

在报头中有一个属性,代表的是报文的长度,Content-Length:

2.http respose

respose 和request 结构大致相同,但是repose 的第一行是状态行,代表本次请求的状态

http version 代表的是请求的版本

状态码和状态码描述 代表的是请求的状态 ,例如:404 NOT FONUND

3.拓展

3.1请求和响应的过程图示

3.2 使用 request

bash 复制代码
[zxy@iZ2zedsl7yyx1pwqlzferiZ ~]$ telnet www.baidu.com 80
Trying 220.181.38.150...
Connected to www.baidu.com.
Escape character is '^]'.
^]
telnet> 
Get / HTTP/1.1

我们使用telnet 链接百度, 使用Get方法,获取 / 根目录 使用 HTTP1.1版本

结果如下:

bash 复制代码
HTTP/1.1 302 Found
Bdpagetype: 3
Content-Length: 154
Content-Type: text/html
Date: Mon, 02 Sep 2024 11:36:19 GMT
Location: https://www.baidu.com/search/error.html
Server: BWS/1.1
Set-Cookie: BDSVRTM=0; path=/
Traceid: 172527697903663388268371857954822945100
X-Ua-Compatible: IE=Edge,chrome=1
X-Xss-Protection: 1;mode=block

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

我们也可以使用其他软件来抓包(fiddler,postman)

这些软件的原理是充当中介,让他们发出请求,(梯子的原理)

相关推荐
dogstarhuang1 小时前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理
苏宸啊1 小时前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
一条泥憨鱼2 小时前
【从0开始学习计算机网络】| DNS -记录类型详解
计算机网络·http·github·域名·dns·记录
奇树谦3 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
嵌入式阿蔡4 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
雷电小将军5 小时前
诡秘之主手游占卜家序列加点 诡秘之主手游占卜家怎么加点
服务器·网络·游戏·电脑·玩游戏
陈皮波比茶5 小时前
Python项目实战-网络机器人(爬虫)
开发语言·网络·爬虫·python·机器人
白猫不黑5 小时前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
wWYy.6 小时前
Linux发送数据包的过程
linux·网络
云飞云共享云桌面6 小时前
自动化设备厂 10 人研发团队,如何共用一台服务器做 SolidWorks 建模?
运维·服务器·网络·3d·自动化·制造