首页
学习
活动
专区
工具
TVP
发布

程序员

专栏作者
513
文章
631676
阅读量
26
订阅数
HTTP/1.1存在的一些问题
随着互联网的发展,http/1.0协议已经不能适应互联网的继续发展。人们在http/1.0的基础上进行了改进,设计了http/1.1协议。但是由于http在最初的时候被设计为一个相对简单直观的协议,但是时间证明了早期的设计是不尽人意的。(个人认为一开始HTTP协议不应该被设计为纯文本协议,虽然文本协议容易调试。这会导致其不够严谨,容易出错。这点在http/2的时候改为了二进制协议。)
zy010101
2022-11-21
3850
HTTP中继
HTTP 中继(relay)是没有完全遵循 HTTP 规范的简单 HTTP 代理。中继负责处理HTTP 中建立连接的部分,然后对字节进行盲转发。
zy010101
2022-11-16
4550
web隧道
web隧道可以让 HTTP 应用程序访问使用非 HTTP 协议的应用程序。Web 隧道允许用户通过 HTTP 连接发送非 HTTP 流量,这样就可以在 HTTP 上捎带其他协议数据了。使用 Web 隧道最常见的原因就是要在 HTTP 连接中嵌入非 HTTP流量,这样,这类流量就可以穿过只允许 Web 流量通过的防火墙了。
zy010101
2022-11-16
7570
web网关
HTTP 扩展和接口的发展是由用户需求驱动的。要在 Web 上发布更复杂资源的需求出现时,人们很快就明确了一点:单个应用程序无法处理所有这些能想到的资源。
zy010101
2022-11-14
4070
Web缓存
Web 缓存是可以自动保存常见文档副本的 HTTP 设备。当 Web 请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地存储设备而不是原始服务器中提取这个文档。使用缓存有下列优点。
zy010101
2022-11-07
7310
Web代理(HTTP代理)
有了Web代理,客户端就可以与代理进行对话,然后由代理代表客户端与服务器进行交流。客户端仍然会完成对事务的处理,但它是通过代理服务器提供的优质服务来实现的。HTTP 的代理服务器既是 Web 服务器又是 Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像 Web 服务器一样,正确地处理请求和连接,然后返回响应。同时,代理自身要向服务器发送请求,这样,其行为就必须像正确的 HTTP客户端一样,要发送请求并接收响应。
zy010101
2022-10-28
7630
Web服务器做了什么以及实现一个Web服务器的难度
(1) 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。 (2) 接收请求——从网络中读取一条 HTTP 请求报文。 (3) 处理请求——对请求报文进行解释,并采取行动。 (4) 访问资源——访问报文中指定的资源。 (5) 构建响应——创建带有正确首部的 HTTP 响应报文。 (6) 发送响应——将响应回送给客户端。 (7) 记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。 上述的步骤如下所示:
zy010101
2022-10-28
7080
HTTP连接管理
HTTP协议是应用层协议,HTTP3之前的HTTP协议,都是建立在传输层的TCP协议之上的。本文主要介绍HTTP1.1的连接管理。
zy010101
2022-10-28
5100
Python解析HTTP请求报文
下面的代码是用来解析HTTP报文中包含的内容的。http_parse函数将http报文初步解析为三个部分,分别是起始行,headers和body。主要利用的是python标准库中的email模块。
zy010101
2022-10-27
1.2K0
URL语法,编码以及未来的可能性
URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案(比如 HTTP、FTP、SMTP)来访问的,因此 URL 语法会随方案的不同而有所不同。大部分 URL 都遵循通用的 URL 语法,而且不同 URL 方案的风格和语法都有不少重叠。大多数 URL 方案的 URL 语法都建立在这个由 9 部分构成的通用格式上:
zy010101
2022-10-05
5020
http报文详解
http报文是http协议的核心所在,http客户端和http服务端正是通过交换http报文进行通信的。http报文以一些文本形式的元信息(meta-information)开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。
zy010101
2022-10-05
6040
websocket
websocket是为了解决HTTP协议中的一些问题。因为HTTP是无状态,短连接。
zy010101
2022-07-30
1.2K0
httpx库详解
HTTPX 是 Python3下的全功能 HTTP 客户端,它提供同步和异步 API,并支持 HTTP/1.1 和 HTTP/2,并且高度兼容requests库。
zy010101
2022-05-11
2.3K0
DRF分页
REST framework提供了分页的支持,并允许在settings.py中进行全局配置,如下所示:
zy010101
2021-12-17
4250
DRF二级视图GenericAPIView
GenericAPIView继承自APIView,增加了对于列表视图和详情视图可能用到的通用支持方法。通常使用时,可搭配一个或多个Mixin扩展类。
zy010101
2021-12-17
6430
DRF的Request对象和Response对象
一旦使用了DRF的视图,那么传入视图的Request对象不在是Django的Request对象,而是DRF封装过后的Request对象。同样,DRF建议使用封装过的Response来返回HTTP响应,使用该类构造响应对象时,响应的具体数据内容会被转换(render渲染)成符合前端需求的类型。
zy010101
2021-12-16
1.6K0
DRF一级视图APIView
APIView是Django REST framework提供的所有视图的基类,继承自Django的View类。使用方式:
zy010101
2021-12-15
8540
HTTP长连接和Websocket
在HTTP1.0中使用的是非持久连接,每个TCP连接最多允许传输一个对象。首先浏览器收到服务器的响应以后,会获得HTML文件,从而解析HTML文件中包含的其他URL。每次传输一个对象后,TCP连接就随之关闭。
zy010101
2021-12-08
1.9K0
wsgi和asgi
wsgi和asgi都是Web服务器网关接口。它们是一种规范,描述了Web服务器如何与Web应用程序(客户端)通信,以及如何将Web应用程序链接在一起以处理一个请求。
zy010101
2021-12-08
1.1K0
Django Channels配置
Channels包装了Django的原生异步视图支持(Django3之后支持异步视图),允许Django项目不仅可以处理HTTP,还可以处理WebSockets,MQTT等。Channels提供了与Django的身份验证系统,会话系统等的集成,使得将纯HTTP项目扩展到其他协议比以往任何时候都更容易。因此,通常我们在Django3上实现websocket还是会使用channels
zy010101
2021-12-07
1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档