网络编程
文章平均质量分 85
还是转转
这个作者很懒,什么都没留下…
展开
-
gRpc指南
本文翻译自官网。原文:https://grpc.io/docs/languages/java/quickstart/快速开始下面通过一个简单的样例,让你快速上手基于java的gRpc的使用。前置条件JDK7以上版本获取示例代码示例代码是grpc-java的一部分。从github仓库下载gprc代码压缩文件并解压,或者直接克隆代码:$ git clone -b v1.40.0 https://github.com/grpc/grpc-java进入示例代码路径:$ cd gprc-ja翻译 2021-08-26 23:13:20 · 454 阅读 · 0 评论 -
RPC框架原理与实践
RPC(Remote Process Call)即远程过程调用,这是分布式系统中一个很基础的概念。它是相对于本地调用来说的,指调用非本地的服务器上的方法。RPC基本原理一次RPC调用的过程如下:用文字描述为:服务调用方发送请求到服务提供方,服务提供方根据请求参数执行服务并获得结果,然后将结果返回给服务请求方。在RPC过程中,由于服务提供方一般是以集群形式存在的,因此涉及到路由寻址,负载均衡的问题。请求数据在网络上最终是以二进制的数据进行传输的,因此涉及到序列化的问题。当然,最基本的还有网络通信问原创 2021-05-09 23:05:53 · 563 阅读 · 0 评论 -
TCP全连接占满问题
在实际工作中经常碰到一种情况,流量上涨的时候,服务端会出现大量的超时。此时的处理办法一般是扩容。实际上就算没有流量上涨,当某个接口速度变慢时,调用该接口的服务也会出现超时。不管是流量上涨(qps增加)还是接口变慢,导致超时的直接原因都是系统吞吐量不足(系统吞吐量 = qps / 响应时间)。当系统吞吐量不足时,大量请求就会在接口上堆积得不到及时的处理,表现出来就是连接超时或接口超时。TCP半连接队列和全连接队列创建tcp连接时需要三次握手。首先客户端向服务端发送一个连接请求,包含一个SYN包原创 2021-03-22 10:26:14 · 5356 阅读 · 0 评论 -
Nginx反向代理
在之前的blog中有提到,一个http请求到达服务器之后,会首先经过nginx进行反向代理,然后才会到达真实的web服务器。本文将介绍nginx的主要配置。Nginx的主要作用是反向代理,反向代理是针对web服务器提供加速功能,作为代理缓存,它并不是针对浏览器用户,而针对一台或多台特定的web服务器,它可以代理外部网络对内部网络的访问请求。正向代理隐藏了客户端信息,而反向代理隐藏了服务器信...原创 2020-01-18 23:51:32 · 2613 阅读 · 0 评论 -
网络IO模型
BIO服务端: public class SocketServer { public static void main(String[] args) throws Exception { // 监听指定的端口 int port = 8080; ServerSo...原创 2019-07-23 11:22:00 · 167 阅读 · 1 评论 -
Thrift基础
Thrift是Facebook开源的一款rpc调用框架,提供给Apache之后叫做Apache Thrift。它是一种高效的、支持多种编程语言的远程服务调用框架。本文将以python和java为例来介绍thrift的开发和使用。1 简介Thrift中有几个重要的概念,下面将依次次介绍。TransportTransport是网络读写(socket,http)的抽象,用于和其他thrift...原创 2019-06-23 22:43:51 · 487 阅读 · 0 评论 -
浏览器请求从发送到返回的完整过程
这是一道比较经典的面试题,主要考察的是对网络方面的认识。先通过一张图对整个处理流程进行描述(出自参考资料1):简单地说:首先通过DNS域名解析出服务器IP,然后通过TCP/IP协议建立起客户端到服务器的TCP连接。网络连接建立好之后,通过HTTP协议发出请求包,从网络模型的应用层传到物理层,随后发送出去。请求包在服务器端经过负载均衡,到达服务器,经服务器处理后返回结果给客户端,客户端收到结...原创 2019-03-08 18:00:08 · 4099 阅读 · 0 评论 -
Xml外部实体注入漏洞(XXE)与防护
Xml外部实体注入(XXE)除了json外,xml也是一种常用的数据传输格式。对xml的解析有以下几种常用的方式:DOM,SAX,JDOM,DOM4J,StAX等。然而这几种解析方式都可能会出现外部实体注入漏洞,如微信支付的回调就出现过(见参考资料2)。XML文档结构包括xml声明,DTD文档类型定义(可选)和文档元素,如下图所示: DTD的作用是定义XML文档的合法构建模块,可以...原创 2018-09-12 13:58:59 · 25786 阅读 · 5 评论 -
HTTPS协议
协议原理在“常用的通讯安全机制”一文中,介绍过摘要认证和签名认证,并在最后提到过,与外部通讯时,https协议是基础。HTTPS的全称是Hypertext Transfer Protocol Over Secure Socket Layer,即基于SSL的超文本传输协议,由网景(Netscape)首创。HTTPS协议在传输层(TCP协议)和应用层(HTTP协议)之间增加了SSL/TLS协议...原创 2018-03-11 19:33:29 · 241 阅读 · 0 评论 -
httpclient工具方法
public class HttpClientUtil {private static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);public static String sendData(String url, String str) { Registry<ConnectionSocketFactory> s原创 2017-05-20 09:43:37 · 639 阅读 · 0 评论