【一起来烧脑】读懂HTTP知识体系

背景

读懂HTTP很重要,参加过面试的小伙伴都很清楚,无论是技术面试面试题出得怎样,都有机会让你讲解一下HTTP,大部分都会问一下。

面试官:考考你网络协议的知识,TCP协议和UDP协议的区别,HTTP协议,HTTPS协议的底层原理是什么等一堆技术问题。

小达:。。。。我还不知道哎。

面试官:那你回去等通知吧

于是小达回家后,针对其中的HTTP进行一番研究。

历史体系

Http是一种网络协议,也是互联网上应用最为广泛的一种,http也叫超文本传输协议,所有的www文件都是遵循这个标准进行传输的。

HTTP的出现是为了提供一种发布和接收HTML页面的办法。

HTTP目录

HTTP简介

http协议是超文本传输协议,是用于从万维网服务器传输文本到本地浏览器的传送协议,是基于tcp/ip通信协议来传输数据的。

http原理,http协议是作用在客户端和服务器端上的,电脑上的浏览器是作为http客服端通过使用url向http服务器端(web服务器)发送所有的请求。

web服务器接收到由http客户端发送的请求后,向客户端发送响应信息,http默认的端口号为80端口(之间的通风口)。

http的特点:

http是无连接的,限制每次连接只处理一个发送的请求,服务器端处理完客户端发送的请求,并收到客户端的应答后,就立即断开连接,两种之间的传输不是持续性的,这样做可以节省传输的时间。

客服端和服务器端只要知道如何处理数据内容,两者之间就可以通过Http发送任何你想要的数据。

http协议是无状态的,无状态协议意味着处理事务是没有记忆能力的,如果后面还要处理前面的信息,就要重新发送请求,导致每次连接传送的数据不断增大。

HTTP消息结构

http是基于客户端和服务器端C/S的架构模型,是一个无状态的请求/响应协议,客户端通过连接服务器,向服务器发送一个或多个http的请求,服务器端通过接收客户端的请求并向客服端发送http响应数据。

注:url为统一资源标识符,是用来传输数据和建立连接的。

客户端发送一个HTTP请求到服务器的请求消息:

包含有:请求行,请求头部,空行,请求数据四种

(请求行,请求头部,请求数据)

服务器响应消息:

http响应消息包含:状态行,消息报头,空行,响应正文

HTTP请求方法

HTTP 响应头信息

HTTP 状态码

HTTP状态码:

200 - 请求成功

301 - 资源被永久转移到其它URL

404 - 请求的资源不存在

500 - 内部服务器错误

HTTP状态码分为5种类型:

1**	信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求过程中发生了错误

HTTP content-type

Content-Type,内容类型

一般指网页中存在的Content-Type

用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件


请点赞!因为你的鼓励是我写作的最大动力!

吹逼交流群:711613774

【一起来烧脑】读懂HTTP知识体系的相关教程结束。

相关推荐:

Python进阶知识体系梳理_结构化复习

进阶Python需掌握解释器执行模型、LEGB作用域、对象生命周期及__dunder__方法;函数式与OOP结合用partial、decorator、@property等;并发分threading、multiprocessing、asyncio三层;元编程重在inspect、typing、__new...

Python异常体系详解_常见异常类型说明

python异常体系以baseexception为根,日常使用exception及其子类;常见异常包括nameerror、typeerror、valueerror、indexerror、keyerror等;应精准捕获、按specificity排序、善用else/finally、避免异常作流程控制。 ...

Python HTTP请求流程_requests实现原理

requests库如何发起一次HTTP请求 requests并不是直接操作socket的底层库,而是基于urllib3构建的高层封装。当你调用requests.get("https://example.com")时,实际流程是:构造请求对象→经过会话(Session)管理→交由urllib3的连接池...

Python异常分层设计_异常体系规划方法

python异常体系按语义层级组织为baseexception→exception→具体异常三层结构,自定义异常应继承exception并构建业务语义明确的继承链,避免继承baseexception、命名模糊或过度细分。 Python的异常体系不是随意堆砌的,而是按语义层级精心组织的。理解这种分层逻...

Python HTTP 连接复用实现方法

Python中实现HTTP连接复用,核心是重用底层TCP连接,避免每次请求都经历DNS查询、TCP握手和TLS协商,从而显著提升高频请求场景下的性能。关键在于使用支持连接池的HTTP客户端,并正确配置生命周期管理。 使用requests+urllib3连接池(最常用) requests库默认基于ur...

Python clickhouse-connect 的 HTTP 接口实践

clickhousehttp连接失败主因是端口错误(需用8123而非9000)、服务端未启用http_port或防火墙拦截;query()空结果或400错误多因sql末尾分号或参数未用parameters字典;大批量写入应优先用insert_df()或insert_json()并分批。 clickh...

Python 模型蒸馏的知识蒸馏实践

应根据教师输出选择损失:若为概率分布则用kl散度,需教师softmax后取log、学生log_softmax;若为logits则可用mse但丢失温度平滑效应;kl在小数据或类别不平衡时更稳,但需梯度裁剪。 知识蒸馏中KL散度损失和MSE损失怎么选? 看教师模型输出的是概率分布还是logits——如果...