70-HTTP POST 请求参数形式 简介HTTP 协议是以 ASCII 码 传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须 使用什么编码方式 。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。 数据发送出去, 2021-03-08 HTTP #HTTP
70-HTTP 请求方式 根据 HTTP 标准,HTTP 请求可以使用多种请求方法 HTTP1.0 定义了三种请求方法:GET、POST 和 HEAD 方法。 HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。 1、GET 【获取资源】GET 本质就是发送一个请求来取得服务器上的某一资源。资源通过一组 HTTP 头和呈现数据(如 HTML 文 2021-03-08 HTTP #HTTP
71-HTTPS 这篇文章写的不错,转载一下 https://zhuanlan.zhihu.com/p/43789231 为什么需要加密?因为 http 的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。最容易理解的就是对称 2021-03-08 HTTP #HTTP
71-SSL TLS 握手协议 1、TLS/SSL 的前世今生SSL(Secure Sockets Layer)最初由 Netscape 定义, 分别有 SSLv2 和 SSLv3 两个版本(SSLv1未曾对外发布),在 SSLv3 之后 SSL 重命名为 TLS。 TLS(Transport Layer Security)版本从 TLSv1.0 开始,TLSv1.0 是在 SSLv3 的基础上升级而来。 协议 2021-03-08 HTTP #HTTP
80-00 IO 模型 简介 IO 模型介绍传统的网络 IO 模型包括五种: [阻塞IO(blocking IO)](#阻塞IO(blocking IO)) [非阻塞IO(non-blocking IO)](#非阻塞IO(non-blocking IO)) [多路复用IO(IO multiplexing)](#多路复用IO(IO multiplexing)) 信号驱动IO模型 [异步IO(Asynchronous I 2021-03-08 network #network
80-30 IO 模型-多路复用 基础 前提在介绍 select、poll、epoll 前,有必要说说 linux(2.6+) 内核的事件 wakeup callback 机制,这是 IO 多路复用机制存在的本质。 Linux 通过 socket 睡眠队列来管理所有等待 socket 的某个事件的 process,同时通过 wakeup 机制来异步唤醒整个睡眠队列上等待事件的 process,通知 process 相关事件发生。 通常情 2021-03-08 network #network
80-31 IO 模型-多路复用 select select 函数该函数准许进程指示内核等待多个事件中的任何一个发送,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒。函数原型如下: 123456789101112131415161718192021222324252627282930313233343536#include <sys/select.h>#include <sys/time.h>int select 2021-03-08 network #network
80-32 IO 模型-多路复用 poll 简介poll 的机制与 select 类似,与 select 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll 没有最大文件描述符数量的限制。poll 和 select 同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。 poll 函数函数格式如下 2021-03-08 network #network
80-33 IO 模型-多路复用 epoll 背景epoll 是在 2.6 内核中提出的,是之前的 select 和 poll 的增强版本。相对于 select 和 poll 来说,epoll 更加灵活,没有描述符限制。epoll 使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的 copy 只需一次。 epoll 接口epoll 操作过程需要三个接口,分别如下: 1234567 2021-03-08 network #network
80-33 IO 模型-多路复用 epoll 2 原文链接:https://zhuanlan.zhihu.com/p/63179839 一、从网卡接收数据说起下图是一个典型的计算机结构图,计算机由CPU、存储器(内存)、网络接口等部件组成。了解epoll本质的第一步,要从硬件的角度看计算机怎样接收网络数据。 下图展示了网卡接收数据的过程。在①阶段,网卡收到网线传来的数据;经过②阶段的硬件电路的传输;最终将数据写入到内存中的某个地址上(③ 2021-03-08 network #network
A 记录与 CNAME 记录 解析域名分为两种: 将一个域名解析为一个IP地址,这个就是 A 记录 将一个域名解析为另外一个域名,这个就是 CNAME 记录 A 记录与 CNAME 记录A 记录和 CNAME 记录是 DNS 中两种常见的资源记录类型,它们在域名解析过程中具有不同的作用。 A 记录 (Address Record)。A 记录用于将域名解析为IPv4地址。例如,将域名 www.example.com 解析为 2021-03-08 network #network
CDN CDN(Content Delivery Network,内容分发网络)CDN 是一种网络架构,旨在提高用户对互联网上内容的访问速度和性能。CDN 通过在全球各地部署大量的服务器节点,将内容缓存到离用户更近的服务器上,从而减少内容传输的距离,提高访问速度和响应时间。 CDN的工作原理是:将内容(如网页、图片、视频等)缓存到离用户最近的服务器节点上,当用户请求访问这些内容时,CDN 会根据用户的地理 2021-03-08 network #network
Flink 上传的包 先看一张图片 上传 jar 包两个重要的配置 web.tmpdir:上传 jar 包临时目录,重启后上传包就会被删除。。格式:java.io.tmpdir + “flink-web-” + UUID web.upload.dir: jar 包上传目录。flink 上传 jar 包逻辑:从配置文件中找 UPLOAD_DIR,若是为 null 就找 TMP_DIR 目录来看成 jar 上传的路径 2021-03-08 Flink #Flink
Flink 历史服务器 Flink 官网主页地址:https://flink.apache.org Flink 官方中文地址:https://nightlies.apache.org/flink/flink-docs-stable/zh/ 历史服务器运行 Flink job 的集群一旦停止,只能去 yarn 或本地磁盘上查看日志,不再可以查看作业挂掉之前的运行的 Web UI,很难清楚知道作业在挂的那一刻到底发 2021-03-08 Flink #Flink
Flink 快速上手 Flink 官网主页地址:https://flink.apache.org Flink 官方中文地址:https://nightlies.apache.org/flink/flink-docs-stable/zh/ 1、创建项目在准备好所有的开发环境之后,我们就可以开始开发自己的第一个 Flink 程序了。首先我们要做的,就是在 IDEA 中搭建一个 Flink 项目的骨架。我们使用 J 2021-03-08 Flink #Flink
Flink 报错之 Upload 一直停留在 saving 报错: flink new Job 时 一直在saving 如下图所示: 通常是由于 nginx 服务器造成的,查看 nginx 报错,我碰到过两种情况 报错 500:上传文件目录没有权限 解决方案:修改上传目录权限 报错 413(Request Entity Too Large):上传文件太大,超出了 Nginx 的默认值 解决方案:修改 Nginx 设置 client_ma 2021-03-08 Flink #Flink
Flink 程序开发步骤(Java语言) 开发流程Flink 的流处理 API(DataStream API)位于 org.apache.flink.streaming.api.scala 包(Scala语言)或 org.apache.flink.streaming.api 包(Java语言)中。本文以 java 为例。 我们如果要使用Flink进行计算开发,一个完整的开发步骤是怎样的呢? 什么叫有界数据流,什么叫无界数据流(何为流处理, 2021-03-08 Flink #Flink
Flink 简介 Flink 官网主页地址:https://flink.apache.org Flink 官方中文地址:https://nightlies.apache.org/flink/flink-docs-stable/zh/ 1、Flink是什么Flink 核心目标,是 “数据流上的有状态计算” (Stateful Computations over Data Streams)。 具体说明:Apa 2021-03-08 Flink #Flink
Flink 配置之日志配置 前言本文介绍的内存配置方法基于 Flink 1.10 Flink 应用程序容器创建并写入三种类型的日志文件:.out 文件、.log 文件和 .err 文件。仅限将 .err 文件压缩并从文件系统中删除,而将 .log 和 .out 日志文件保留在文件系统中。 每个独立的JobManager,TaskManager,HistoryServer和zookeeper守护重定向stdout和stderr 2021-03-08 Flink #Flink
Flink 集群搭建及作业提交初体验 Flink 官网主页地址:https://flink.apache.org Flink 官方中文地址:https://nightlies.apache.org/flink/flink-docs-stable/zh/ 1、集群角色 Flink 提供作业和执行任务,需要几个关键组件: Client(客户端):代码由客户端获取并做转换,之后提交给JobManager JobManager:就 2021-03-08 Flink #Flink