目录 简介 使用客户端构建请求 accept-encoding server解析HTTP请求 总结 简介 上一篇文章,我们搭建了一个支持中文的HTTP服务器,并且能够从浏览器访问,并获取到相应的结果.虽然浏览器在日常的应用中很普遍,但是有时候我们也有可能从自建的客户端来调用HTTP服务器的服务. 今天给大家介绍如何自建一个HTTP客户端来和HTTP服务器进行交互. 使用客户端构建请求 在上一篇文章中,我们使用浏览器来访问服务器,并得到到了响应的结果,那么如何在客户端构建请求呢? netty中的H…
-- 时常在想,怎么样才能把知识写的清晰,其实是我理解的不够清晰 微信小程序其实是一个客户端页面,也是需要和服务器交互才能体现数据. 1 --服务器搭建Web API :MVC4 中的一个模板, 如下是Query API  的一个Get 方式,只是为了了解 JsonConvert.SerializeObject(_dt.ToList());   值如何返回到界面 #region --- 查询绑定信息 --- [HttpGet] public string GetQuery(string strE…
目录 简介 浏览器客户端 netty对websocket客户端的支持 WebSocketClientHandshaker WebSocketClientCompressionHandler netty客户端的处理流程 创建handshaker websocket消息的处理 总结 简介 在网速快速提升的时代,浏览器已经成为我们访问各种服务的入口,很难想象如果离开了浏览器,我们的网络世界应该如何运作.现在恨不得把操作系统都搬上浏览器.但是并不是所有的应用都需要浏览器来执行,比如服务器和服务器之间的通…
目录 简介 配置SslContext 客户端的handler 使用Http2FrameCodec Http2MultiplexHandler和Http2MultiplexCodec 使用子channel发送消息 总结 简介 在之前的文章中,我们实现了支持http2的netty服务器,并且使用支持http2的浏览器成功的进行访问.虽然浏览器非常通用,但是有时候我们也需要使用特定的netty客户端去和服务器进行通信. 今天我们来探讨一下netty客户端对http2的支持. 配置SslContext…
目录 简介 netty介绍 netty的第一个服务器 netty的第一个客户端 运行服务器和客户端 总结 简介 我们常用浏览器来访问web页面得到相关的信息,通常来说使用的都是HTTP或者HTTPS协议,这些协议的本质上都是IO,客户端的请求就是In,服务器的返回就是Out.但是在目前的协议框架中,并不能完全满足我们所有的需求.比如使用HTTP下载大文件,可能需要长连接等待等. 我们也知道IO方式有多种多样的,包括同步IO,异步IO,阻塞IO和非阻塞IO等.不同的IO方式其性能也是不同的,而ne…
一.前言 Netty 为许多通用协议提供了编解码器和处理器,几乎可以开箱即用, 这减少了你在那些相当繁琐的事务上本来会花费的时间与精力.另外,这篇文章中,就不涉及 Netty 对 WebSocket协议 的支持了,因为涉及的篇幅有点大,会在下一篇文章做一个具体的介绍. 二.SSL 协议 SSL 协议是安全协议,层叠在其他协议之上.为了支持 SSL/TLS, Java 提供了 javax.net.ssl 包,它的 SSLContext 和 SSLEngine 类使得实现解密和加密相当简单直接. N…
Netty 系列目录 二 Netty 源码分析(4.1.20) 1.1 Netty 源码(一)Netty 组件简介 2.1 Netty 源码(一)服务端启动 2.2 Netty 源码(二)客户端启动 3.1 Netty 源码(一)ByteBuf 4.1 Netty 源码 Channel(一)概述 4.2 Netty 源码 Channel(二)核心类 5.1 Netty 源码 NioEventLoop(一)初始化 5.2 Netty 源码 NioEventLoop(二)Channel 注册 5.3…
Netty系列(四)TCP拆包和粘包 一.拆包和粘包问题 (1) 一个小的Socket Buffer问题 在基于流的传输里比如 TCP/IP,接收到的数据会先被存储到一个 socket 接收缓冲里.不幸的是,基于流的传输并不是一个数据包队列,而是一个字节队列.即使你发送了 2 个独立的数据包,操作系统也不会作为 2 个消息处理而仅仅是作为一连串的字节而言.因此这是不能保证你远程写入的数据就会准确地读取.举个例子,让我们假设操作系统的 TCP/TP 协议栈已经接收了 3 个数据包: 由于基于流传输…
Netty 系列(三)Netty 入门 Netty 是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络服务器和客户端程序.更多请参考:Netty Github 和 Netty中文入门. 一.获得 Netty 可以通过Maven安装Netty.查看Netty之HelloWorld快速入门,更多API <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</art…
你好,我是彤哥,本篇是netty系列的第三篇. 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识. 简介 上一章我们介绍了IO的五种模型,实际上Java只支持其中的三种,即BIO/NIO/AIO. 本文将介绍Java中这三种IO的进化史,并从使用的角度剖析它们背后的故事. Java BIO BIO概念解析 BIO,Blocking IO,阻塞IO,它是Java的上古产品,自出生就有的东西(JDK 1.0). 使用BIO则数据准备和数据从内核空间拷贝到用户空间两个阶段都是阻塞的. BIO使用案…