标签: Http

晚风 | 3周前 | Http

HTTP 方法和使用场景大全

HTTP(超文本传输协议)方法,也称为 HTTP 动词,定义了可以对资源执行的操作。理解这些方法的使用对于 Web 开发至关重要,因为它们促进了客户端和服务器之间的交互。以下是最常用HTTP方法的概述: 01 GET 用途:GET 方法请求特定资源的表示。它只检索数据而不改变资源的状态,使其成为一个安全且 幂等 的方法。它主要用于获取文档或查询数据。示例:浏览网站,平台上搜索。 02 POST 用途:POST 方法提交要处理的数据到指定的资源,通常会导致状态的改变。它用于创建资源或提交表单数据。示例:提交Web表单,创建一个新的用户账户。 03 PUT 用途:PUT 方法用于更新现有资源。与POST不同,PUT是 幂等 的,意味着后续的相同请求应产生相同的结果。示例:更新用户资料,更改设置。 04 DELETE 用途:DELETE 方法删除指定的资源。它也是 幂等 的,这意味着单个成功操作的效果无...

 66 |  0 |  0 Http

柚香 | 3周前 | Http

既然有HTTP协议,为什么还要有RPC

我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵, 我HTTP协议用的好好的,为什么还要用RPC协议? 于是就到网上去搜。 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在 用一个我们不认识的概念去解释另外一个我们不认识的概念 ,懂的人不需要看,不懂的人看了还是不懂。 这种看了,又好像没看的感觉,云里雾里的很难受, 我懂 。 为了避免大家有强烈的 审丑疲劳 ,今天我们来尝试重新换个方式讲一讲。 从TCP聊起 作为一个程序员,假设我们需要在A电脑的进程发一段数据到B电脑的进程,我们一般会在代码里使用 socket 进行编程。 这时候,我们可选项一般也就 TCP和UDP二选一。TCP可靠,UDP不可靠。 除非是马总这种神级程序员(早期QQ大量使用UDP),否则,只要稍微对可靠性有些要求,普通人一般无脑选TCP就对了。 类似下面这样。 fd = socket(AF_INET,SOCK_STREAM,0); 其中 SOCK_STREAM ,是指使用 字节流 传输数

 116 |  0 |  0 Http

柚香 | 2024-02-26 | NginxHttp

Nginx 核心架构设计和原理

Nginx 核心架构设计和原理 Nginx 是一个免费的、开源的、高性能 Http 服务器和反向代理。Nginx 的架构设计是为了提供高性能、稳定性和可扩展性。 以下是 Nginx 的主要架构组件和工作原理: 1. Master 进程 : Nginx 的运行始于一个 master 进程,它负责管理所有的工作进程。 master 进程负责读取和解析配置文件,并启动工作进程。 2. 工作进程 : 一旦 master 进程启动,它会生成一组工作进程。 每个工作进程都是独立运行的,负责处理来自客户端的连接和请求。 工作进程之间相互独立,可以并行处理请求,提高了 Nginx 的性能和吞吐量。 1. [事件驱动模型]() : Nginx 采用了事件驱动的模型,主要利用了操作系统提供的异步 I/O 机制。 当有新的连接建立或者数据可读写时,Nginx 不会阻塞等待,而是通过事件...

 141 |  0 |  0 NginxHttp

奈我何 | 2024-01-11 | 后端相关Http

面试官:我们为什么需要 7 层 OSI 网络模型?

我们为什么需要网络协议来传输数据? 连接互联网的各种设备需要用它们能理解的语言进行通信。各种计算机系统使用 OSI(Open Systems Interconnectio)模型规定的标准相互通信。 [OSI 模型]()有七个抽象层,每个层都有不同的职责和协议。 下图显示了 OSI 模型中每一层的功能。 每个中间层都为其上层提供功能,并由其下层提供服务。 01 应用层 应用层最接近终端用户。大多数应用程序都位于这一层。我们从后端服务器请求数据,无需了解数据传输的具体细节。这一层的协议包括 HTTP、SMTP、FTP、DNS 等。 02 表现层 这一层处理[数据编码]()、加密和压缩,为应用层准备数据。例如,HTTPS 利用 TLS 实现客户端与服务器之间的安全通信。 03 会话层 该层用于打开和关闭两个设备之间的通信。如果数据量较大,会话层就会设置检查点,避免从头开始重新发送。 04 传输层 该...

 137 |  0 |  0 后端相关Http

晚风 | 2023-12-08 | 前端相关Http

20 张图彻底弄懂 HTTPS 的原理!

前言 近年来各大公司对信息安全传输越来越重视,也逐步把网站升级到 HTTPS 了,那么大家知道 HTTPS 的原理是怎样的吗,到底是它是如何确保信息安全传输的?网上挺多介绍 HTTPS,但我发现总是或多或少有些点有些遗漏,没有讲全,今天试图由浅入深地把 HTTPS 讲明白,相信大家看完一定能掌握 HTTPS 的原理,本文大纲如下: 1. HTTP 为什么不安全 2. 安全通信的四大原则 3. HTTPS 通信原理简述 对称加密 数字证书 非对称加密 数字签名 4. 其它 HTTPS 相关问题 HTTP 为什么不安全 HTTP 由于是明文传输,主要存在三大风险 1、 窃听风险 中间人可以获取到通信内容,由于内容是明文,所以获取明文后有安全风险 2、 篡改风险 中间人可以篡改报文内容后再发送给对方,风险极大 ![图片](https://static.developers.pub...

 188 |  1 |  0 前端相关Http

女王范 | 2023-12-06 | 后端相关Http

面试官:你背诵一下,OSI七层网络模型

今天我们来聊聊网络协议。 1. [OSI模型]() 网络协议是网络中两台计算机之间传输数据的标准语言。各种计算机系统使用 OSI(Open Systems Interconnection)模型规定的标准相互通信。OSI 模型有七个抽象层,每个层都有不同的职责和协议。 下图显示了 OSI 模型中每一层的功能。每一层都为其上层提供一类功能,并由其下层为其提供服务。 应用层 应用层最接近终端用户。大多数应用程序都位于这一层。我们从后端服务器请求数据,无需了解数据传输的具体细节。这一层的协议包括 HTTP、SMTP、FTP、DNS 等。 表现层 这一层处理[数据编码]()、加密和压缩,为应用层准备数据。例如,HTTPS 利用 TLS(Transport Layer Security)实现客户端与服务器之间的安全通信。 会话层 该层用于打开和关闭两个设备之间的通信。如果数据量较大,会话层就会设置检查点,避免...

 181 |  0 |  0 后端相关Http

青木 | 2023-11-27 | JavaScript前端相关Http

你知道 XHR 和 Fetch 的区别吗?

现如今,网站开发普遍采用前后端分离的模式,数据交互成为了不可或缺的关键环节。在这个过程中, XHR 和 Fetch API 是两种最常见的方法,用于从 Web 服务器获取数据。 XHR 是一种传统的数据请求方式,而 Fetch API 则代表了现代 Web 开发的新兴标准。 接下来,我们将一同深入学习它们的使用方法和适用场景。 XMLHttpRequest XMLHttpRequest,通常简称为 XHR。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。XMLHttpRequest 在 AJAX 编程中(比如 jquery)被大量使用。 AJAX :异步 JavaScript 和 XML。许多人容易把它和 jq 的 ajax 混淆。它是一个技术统称,本身不是一种技术。 特点 1. 异步请求 :XHR 允许进行异步请求,它可以在后台执行,而不会阻止页面的其他操作。 2. 支持跨域请求 :通过服务器端设置允许跨域请求,从不同域的服务器获取数据。 3. 事件驱动 :提供了 onl...

 304 |  0 |  0 JavaScript前端相关

花小染 | 2023-09-25 | 前端相关Http

你真的懂HTTP缓存吗?

背景 需求开发中不断的往项目中添加图片、字体等这些静态资源使得项目打包体积越来越大。 打包后这些静态资源占据了包体积的大部分。 基于此,我们准备将静态资源从项目中移出来放到 oss 云服务上,这样项目的体积会缩小很多,打包速度也会快很多 但是,想法是好的,但是具体的操作上存在一些问题需要解决: 静态资源的缓存问题 目录结构问题 资源更新问题 这篇文章我会重点分享静态资源缓存问题的解决方案。 HTTP 缓存 说到静态资源的缓存问题其实就是HTTP缓存的问题,我们既要保证客户端能快速的加载静态资源还需要保证当静态资源变化时,客户端能及时更新。 缓存过程 image.png 由上图我们可以发现: 浏览器在请求资源时,都会去查看当前浏览器缓存中是否存在缓存结果和缓存标识 当请求结果返回浏览器时,浏览器都会将当前结果和缓存标识存入浏览器缓存中 以上两点是浏览器缓存机制的关键,它确保了每个请求的...

 300 |  0 |  0 前端相关Http

心如止水 | 2023-09-08 | 前端相关Http

http实现文件分片下载

HTTP分片异步下载是一种下载文件的技术,它允许将一个大文件分成多个小块(分片),然后分别下载这些分片,从而实现更快速、稳定的下载过程。这种技术常用于大文件的下载,例如视频、游戏、软件等。或者与文件下载的断点续传功能搭配使用时非常有用。 比如当你正在看大片时,网络断了,你需要继续看的时候,文件服务器不支持断点的话,则你需要重新等待下载这个大片,才能继续观看。而支持 HTTP Range 的话,客户端就会记录了之前已经看过的视频文件范围,网络恢复之后,则向服务器发送读取剩余Range的请求,服务端只需要发送客户端请求的那部分内容,而不用整个视频文件发送回客户端,以此节省网络带宽,带来更流畅的用户体验。 检测是否支持 检测服务器端是否支持分片请求。 假如在响应头中存在 Accept-Ranges (并且它的值不为 none ),那么表示该服务器支持分片请求。例如,你可以使用 cURL 发送一个 HEAD 请求来进行检测。 curl -I https://xxx.jpg HTTP/1.1 200 OK ... Accept-Ranges: bytes Co

 331 |  0 |  0 前端相关Http

OOM | 2023-09-06 | Http

透视http协议

http协议是什么? 超文本传输协议 HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范 TCP/IP 四层模型 链接层 网络层 传输层 应用层 OSI 七层模型 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 输入网址再按下回车,后面发生了什么 1. 浏览器从地址栏的输入,进行域名解析,因此通过浏览器缓存,系统缓存,host文件中获得服务器的 IP 地址和端口号; 2. 浏览器用 TCP 的三次握手与服务器建立连接; 3. 浏览器向服务器发送拼好的报文; 4. 服务器收到报文后处理请求,同样拼好报文再发给浏览器; 5. 浏览器解析报文,渲染输出页面。 http报文 image.png 1. 请求行有三部分:请求方法,请求目标和版本号; 2. 状态行也有三部分:版本号,状态码和原因字符串; | GET / HTTP/...

 302 |  0 |  0 Http

心如止水 | 2023-08-17 | Http

你不知道的 HTTP Referer

前言 上周突然发现自己的自己站点的图片全都403了,之前还是好好的,图片咋就全都访问不了呢?由于我每次发文章都是先发了掘金,然后再从掘金拷贝到我自己的站点,这样我就不用在自己的站点去上传图片了,非常方便。 啥也没干,图片咋就403了呢?估计又是整了什么开源节流,降本增效吧,说白了就是大家都用他站点的图片导致流量费用蹭蹭蹭的往上涨,人家肯定不愿意了,这下给图片都加上防盗了,非自己的站点全都给你返回403. 防盗原理 是不是很好奇这些图片防盗是怎么做的? 我们可以自己来实现一下这个场景:不受信任的域名访问我服务器上的图片资源全都返回403 准备几个域名 这里没有域名也不用担心,我们可以直接本地模拟就行了,比如我这里使用 SwitchHosts 给本地添加的三个域名并且都指向我们的本地IP ![图片](https://static.developers.pub/7d1854d1856f42e085c9c099ff...

 270 |  0 |  0 Http

雨馨 | 2023-07-17 | 前端相关Http

媲美 postman 的 IDEA 插件神器,常用功能统统搞定!

介绍 RESTful WebServices是一个类似jmeter、postman的工具。可以使用纯文本编辑。 编写HTTP请求 在IDEA中的位置 Tools Http client Test Restful WebService 。点击之后出现如下界面 点击红色部分即可出现文本编辑页面 可以点击Add Request快速生成模板,也可输入gtr生成get请求模板,ptr生成post请求模板,mptr生成 multipart/form-data 请求模板。 点击Examples,其中包含

 389 |  0 |  0 前端相关Http

大牛猫 | 2023-05-02 | 后端相关DubboHttp

如何用一个端口同时暴露 HTTP1/2、gRPC、Dubbo 协议?

本文我们将介绍 Apache Dubbo 灵活的多协议设计原则,基于这一设计,在 Dubbo 框架底层可灵活的选用 HTTP/2、HTTP/REST、TCP、gRPC、JsonRPC、Hessian2 等任一 RPC 通信协议,同时享用统一的 API 与对等的服务治理能力。同时,我们还介绍了 Dubbo 的单端口多协议能力,也就是在单个端口同时监听、处理多个协议,这对于简化多协议同时发布的场景非常有用。 不绑定 RPC 协议的设计原则 Dubbo 框架不绑定任何通信协议,你可以根据业务场景选择 HTTP/2 通信协议,也可以选用 HTTP/REST、TCP(Dubbo2)、gRPC、JsonRPC、Hessian2 等官方支持的通信协议,如果以上协议都不能满足需求,还可以非常方便的通过定制方式接入自定义协议。如果你想在一个应用内使用多个协议,也可以非常容易的做到,比如一个接口使用 HTTP/2 通信,另一个接口使用 TCP 通信,一个应用内发布或调用多个使用不同协议的服务。 ![图片](https://static.developers.pub/e2389...

 488 |  0 |  0 后端相关Dubbo