认识HTTP协议---1

简介: 认识HTTP协议---1

hello,大家好,今天为大家带来http协议的相关知识

1.HTTP协议

🐷1.应用层协议

🐷2.HTTP协议的工作过程

2.HTTP协议格式

🐷1.认识抓包工具Fidder

🐷2.学会使用fidder

fidder

🐷3.协议格式总结

3.HTTP请求

🐷1.认识URL

🐷2.认识请求

4.HTTP响应

🐷1.认识响应

5.总结get和post

下面我们就进入正题吧

1.HTTP协议

🐷1.应用层协议

既然要讲http协议,就要提到TCP/IP五层模型

我们可以清楚的看到http协议属于应用层的协议,应用层协议也就是可以理解成和用户进行交互的协议,就是不关心通信过程,只关注应用交互


🐷2.http协议的工作过程


http协议全称HyperText Transfer Protocol,是一个超文本协议, 往往是基于传输层的 TCP 协议实现的.


HTTP是一个"一问一答"的协议,就是一个请求返回一个响应,我们也谈到过多请求多响应,一个请求,多个响应的情况,这里不在赘述

我们来画个图理解http协议的工作过程


184d7b7bc8b440d7ab7ef63e55dc2f70.png

我们在浏览器上输入https://www.baidu.com/,与之对应的弹出一个百度的搜索页面

这里的绿色框里的输入的一串URL就是请求,而百度搜索页面就是响应


6a1e4224b9e8404588c48a7a62c3b930.png

这里的客户端就是浏览器页面,服务器就是HTTP服务器

客户端向服务器输入一个网址请求,服务器解析解析请求,构造响应,并返回给客户端


http是应用层协议,请求发出要向下一层层封装,接收方收到的时候也是从下到上层层分用,最后完成传输


2.HTTP协议格式


1.认识抓包工具Fidder

我们学习http协议就是要认识http的报文协议格式,那么就要借助抓包工具才能看到,现在认识一下抓包工具Fidder

它长这样,这个词可能有点抽象,就是可以把它当做中介,


比如我要买房子,我不和卖方的人直接交流,我和中介说,中介和卖房子的交流,那么中介就知道我和卖房子之间的所有信息,这是为了方便理解说的,实际上应该叫做代理

,画个图来理解

Fidder相当于一个代理,客户端要向服务器发发送请求,就交给fidder转发,服务器返回响应也交给fiddler转发


🐷2.学会使用fidder

我们现在来抓个包看看

33行处就是fiddler抓到的包


🐷3.协议格式总结

点开这个被抓的包

这个绿色框里面的就是http请求,红色框里面的就是http响应

我们点击raw,点击view in notepad,具体来认识协议格式

这一段就是http请求的报文格式


这是http响应的报文格式

3.HTTP请求

🐷1.认识URL

GET:代表http方法,这里表示调用的是http方法是get方法

这个就是URL,是唯一资源定位符,描述了网络上的一个资源

再来看一个URL


http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1


http:协议名


user:pass:登录信息(认证)


@www.example.jp:域名,(服务器地址)


80:服务器端口号(http默认是8080,HTTPS默认是443)


dir/index.html:带层次的文件路径(表示要访问的服务器资源是啥)


uid=1:查询字符串

(query string 中的内容是键值对结构. 其中的 key 和 value 的取值和个数, 完全都是程序猿自己约定)

规则:使用&分割键值对,使用=分割键和值)


#ch1:片段标识符

156125cbc85840b9994d403d829283f6.png

这个就是http服务器的版本号,一般都是HTTP/1.1

🐷2.认识请求

来看看http的方法都有哪些

GET请求

get请求,有四部分构成,首行,header,空行,body


对于get请求来说body一般没有

空行就相当于是 “报头的结束标记”, 或者是 “报头和正文之间的分隔符”.

HTTP 在传输层依赖 TCP 协议, TCP 是面向字节流的. 如果没有这个空行, 就会出现 “粘包问题”.

4.HTTP响应

来看响应

响应和请求一样都是文本文件,但是响应被压缩了,所以变成了二进制文件,我们依然使用view in notepad来看

Post请求

post请求一般是登录或者上传某个文件的时候才能看到

post请求一般没有URL,一般都有body


5.总结get和post


总体来说,get和post都是向服务器发送请求,没有什么本质区别,但是在使用习惯上有很大区别

1.get习惯上用来表示获取一个数据,post用来表示提交一个数据

2.get请求一般没有body,需要携带的数据放到URL里,post一般有body

3.get请求通常会设置为幂等的,post没有要求

4.get是可缓存的,(前提是幂等)post不能

5.get请求可以被浏览器收藏,post不能

6.有些资料上说 “POST 比 GET 请安全”. 这样的说法是不科学的. 是否安全取决于前端在传输密码等敏感信息时是否进行加密, 和 GET POST 无关.

7.关于传输数据量: 有的资料上说 “GET 传输的数据量小, POST 传输数据量大”. 这个也是不科学的, 标准没有规定 GET 的 URL 的长度, 也没有规定 POST 的 body 的长度. 传输数据量多少, 完全取决于不同浏览器和不同服务器之间的实现区别.具体可以查看RFC官方文档


https://www.rfc-editor.org/rfc/rfc2616


最后来解释一下什么叫幂等


就是说请求是一定的,响应也是一定的,比如牛吃的是草,挤出来就一定是牛奶,不能是别的,如果挤出来的是水,那就不符合幂等

太阳东升西落,如果不符合这个规定,那也不是幂等的!

今天的讲解就到这里,我们下期继续讲解http协议相关的知识,886~~~

相关文章
|
4月前
|
数据采集 数据可视化 API
QUIC协议优化:HTTP/3环境下的超高速异步抓取方案
本文介绍了一种基于QUIC和HTTP/3的异步爬虫方案,用于抓取知乎热榜数据并生成趋势图。通过HTTPX与aioquic结合实现高性能连接复用,配合代理IP绕过反爬限制,提取标题、热度等信息。利用Python代码示例展示了异步抓取流程,并借助Matplotlib绘制话题热度变化图表。分析显示突发热点生命周期短,而深度话题热度更稳定。此方案可优化内容运营策略,快速捕捉潜在爆款话题。
170 4
QUIC协议优化:HTTP/3环境下的超高速异步抓取方案
|
2月前
|
缓存 监控 搜索推荐
301重定向实现原理全面解析:从HTTP协议到SEO最佳实践
301重定向是HTTP协议中的永久重定向状态码,用于告知客户端请求的资源已永久移至新URL。它在SEO中具有重要作用,能传递页面权重、更新索引并提升用户体验。本文详解其工作原理、服务器配置方法(如Apache、Nginx)、对搜索引擎的影响及最佳实践,帮助实现网站平稳迁移与优化。
425 68
|
28天前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
306 2
|
2月前
|
存储 网络协议 安全
HTTP 协议及会话跟踪机制详解
本文详解了 HTTP 协议的核心知识,包括其定义(超文本传输协议,基于 TCP,规定客户端与服务器通信规则)及与 HTTPS 的区别(安全性、端口、资源消耗)。 介绍了 GET 与 POST 请求的差异(参数限制、安全性、应用场景),以及 Restful 风格(通过 URL 定位资源,请求方式决定操作)。列举了常见 HTTP 状态码(如 200 成功、404 资源未找到),对比了转发与重定向的区别(服务器端一次请求 vs 客户端两次请求)。 还阐述了会话跟踪机制:Cookie 基于客户端存储,通过Set-Cookie和Cookie头实现,安全性较低;Session 基于服务端存储,依赖 C
231 1
|
1月前
|
缓存 网络协议 UED
深度解析HTTP协议从版本0.9至3.0的演进和特性。
总的来说,HTTP的演进是互联网技术不断发展和需求日益增长的结果。每一次重要更新都旨在优化性能,增进用户体验,适应新的应用场景,而且保证了向后兼容,让互联网的基础架构得以稳定发展。随着网络技术继续进步,我们可以预期HTTP协议在未来还会继续演化。
335 0
|
2月前
|
XML 安全 网络架构
深度对比SOAP与HTTP协议:详细理解它们的工作原理和差异
在设计服务和系统交云策略时,考虑到上述差异是至关重要的。SOAP适合需要高安全性、可靠性和事务支持的企业级应用。而HTTP适合Web界面浏览、RESTful服务和需要快速响应的轻量级通信。根据具体需求和上下文,开发者可以选择合适的协议以实现最优的系统性能和用户体验。
282 0
|
3月前
|
缓存
HTTP协议深度剖析:常见请求头信息讲解
这就是HTTP请求头背后的工作原理,希望通过比作“邮差”和“标签”,可以让你对这个繁琐技术更有感触,更得心应手。尽管这些信息可能很琐碎,但了解了它们的含义和工作方式,就等于揭开了HTTP协议神秘的面纱,掌控了网络交流的核心。你还等什么,赶快动手尝试一下吧!
125 17
|
2月前
HTTP协议中常见的状态码 ?
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类。常见状态码包括:101(切换协议)、200(请求成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器错误)。
269 0
|
3月前
HTTP协议探究:常用方法一网打尽
总的来说,HTTP协议的命令犹如一把钥匙,解锁了互联网世界的大门。它是规则,也是工具,了解了它,就等于掌握了互联网的一把通行证。我们每天都在用,也常常无视它,但是只有深刻理解了它,才能更好地运用它。如此,我们的互联网世界旅程就会变得更加顺畅,更加有趣。
108 14

热门文章

最新文章