网络
汲建帅
这个作者很懒,什么都没留下…
展开
-
nginx 安装
nginx 安装原创 2022-11-10 08:33:00 · 784 阅读 · 0 评论 -
java.net.ServerSocket 解析
构造public ServerSocket() 构造一个ServerSocket,但不绑定任何端口,所以也不能接受任何的请求连接。以后可以通过bing()方法来进行绑定。public ServerSocket(int port) 通过一个端口来构造一个ServerSocket对象。 默认的tcp队列大小为50. 默认监听本地所有的ip地址(如果有多个网卡)。 TCP分为全连接队列和半连原创 2017-08-15 10:41:15 · 1868 阅读 · 0 评论 -
Socket 实现聊天功能
需要提前了解知识点 java.net.Socket 解析 java.net.ServerSocket 解析使用socket实现一个端对端聊天系统。消息的格式为:消息长度(int)+消息内容通过消息长度来进行socket分包,防止读取出现半包、粘包等问题。服务端代码import java.io.IOException;import java.io.InputStream;import java原创 2017-08-15 10:41:58 · 1916 阅读 · 0 评论 -
网络传输 相关概念
单工如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。 例如: 无线广播,数据只能从发送到传输到接收端。半双工如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。 例如:HTTP协议 同一时刻数据只能单向流动,客户端向服务端请求数据或者服务器向客户端响应数据。全双工如果在任意时原创 2018-01-17 13:49:18 · 2091 阅读 · 0 评论 -
从零手写RPC
RPC概述RPC(Remote Proceduce Call 远程过程调用) 一般用来实现部署在不同机器上的系统之间的方法调用,使程序能够像访问本地系统资源一样,通过网络传输过去访问远端系统资源。RPC 调用过程Client 客户端调用方法实现,负责发起RPC调用。ClientStub/SereverStub 可以看作一个代理对象,屏蔽RPC调用过程中复杂的网络处理逻辑,使原创 2017-12-04 11:52:15 · 5449 阅读 · 5 评论 -
前后端分离 跨域问题解决
跨域的实现原理http 跨域请求后端服务的时候会在请求头中带上如下信息Origin: http://api.jijs.com后端服务器需要在http的响应头中添加以下响应头Access-Control-Allow-Origin : http://api.jijs.com接收到请求后,并验证该站点是否支持跨域请求。 如果前端没有收到该相应头,则浏览器不允许跨域请求的。原创 2017-11-24 11:48:48 · 3691 阅读 · 0 评论 -
路由器 和 交换机 傻傻分不清楚
概述交换机一般用在局域网,负责局域网中,根据 Mac 地址进行数据交换转发。 路由器用在城域网、广域网,根据 IP 地址进行不同网段的数据交换转发。交换机交换机有二层、三层、四层的,一般我们说的交换机都是二层交换机。 因为交换机(二层交换机)只能识别Mac地址,所以他不带路由功能,一般只在局域网中使用。但是他有一个很重要的特性,每个端口数据流量相同,不会因为某个端口数据流量...原创 2018-07-02 13:29:53 · 1001 阅读 · 1 评论 -
TCP 三次握手 和 四次挥手
概述我们都知道 TCP 是 可靠的数据传输协议,UDP是不可靠传输,那么TCP它是怎么保证可靠传输的呢?那我们就不得不提 TCP 的三次握手和四次挥手。三次握手下图为三次握手的流程图 下面通过我们 wireshark 抓包工具来分析三次握手 第一次握手建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;(x 是随机生成的一个...原创 2018-07-02 13:30:54 · 914 阅读 · 0 评论 -
TCP 请求头
TCP 请求头结构Source Port(源端口):源端口号 (占用16位),发送端程序端口Destination Port(目的端口):目的端口号(占用16位),接收端程序端口Sequence Number(发送数据序号):用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节在数据流中的序号;主要用来解决网络报乱序的问题;(占用32位)Ac...原创 2018-07-02 13:32:44 · 4669 阅读 · 0 评论 -
MTU 和 MSS 区别
MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小;以普遍使用的以太网接口为例,缺省MTU=1500 Byte,这是以太网接口对IP层的约束,如果IP层有<=1500 byte 需要发送,只需要一个IP包就可以完成发送任务;如果IP层有> 1500 byte 数据需要发送,需要分片才能完成发...原创 2018-07-02 13:33:59 · 29459 阅读 · 2 评论 -
java.net.Socket 解析
Socket构造public Socket() 构造一个Socket,因为没有指定目标主机和端口,所以不会通过网络进行连接。public Socket(Proxy proxy) 通过一个代理构建一个未连接的Socket。public Socket(String host, int port) 通过一个主机和端口构建一个Socket。构造Socket的时候会连接目标主机,如果连接不到目标主原创 2017-08-15 10:40:19 · 2097 阅读 · 0 评论 -
使用 NIO 实现 echo 服务器
NIO相关知识点IO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理 NIO 之 ByteBuffer实现原理服务器使用NIO来实现一个echo协议的服务器。 echo协议简单也很有用,可以测试网络连接。消息的格式为:消息长度(int)+消息内容通过消息长度来进行socket分包,防止读取出现半包、粘包等问题。服务端import jav原创 2017-08-21 15:53:10 · 1855 阅读 · 0 评论 -
IO、NIO、AIO 内部原理分析
相关文章NIO 之 Selector实现原理 NIO 之 Channel实现原理 NIO 之 ByteBuffer实现原理阻塞IO所有的读写IO都是阻塞操作。多路复用模型select/poll 从程序的角度解释: 将 channel 注册到 seletor 上,通过轮询channel是否就绪,将就绪的channel返回。epoll 将 channel 注册到 selector 上,基于原创 2017-08-21 15:52:07 · 5677 阅读 · 0 评论 -
InetAddress 解析
IP地址分为IPv4 和IPv6。IPv44字节长的ip称为IPv4.目前大部分ip都是IPv4。 IPv4地址一般写为四哥无符号的字节,每个字节范围从0到255,最高字节在前面。为方便人们查看,各字节用点号分割。 例如:192.168.1.100.这称为点分四段格式。IPv616字节长的ip成为IPv6. IPv6地址通常些微冒号分割的8个区块,每个区块4个十六进制数字。 例如:2400:c原创 2017-08-09 16:07:54 · 5743 阅读 · 0 评论 -
URI、 URL 和 URN 的区别
1. URIURI = Universal Resource Identifier 统一资源标志符URI采用一种特定语法标识一个资源的字符串。所标识的资源可能是服务器上的一个文件。不过,也可能是一个邮件地址、新闻消息、图书、人名、Internet主机或者任何其它内容。通过URI找到资源是通过对名称进行标识,这个名称在某命名空间中,并不代表网络地址。它包含URL和URN。 支持的协议有http、ht原创 2017-07-26 13:58:07 · 3917 阅读 · 2 评论 -
java中设置网络代理
代理服务器概述许多系统通过代理服务器访问Web,有时还会访问Internet的其它非HTTP部分。代理服务器接收到本地客户端到远程服务器的请求。代理服务器向远程服务器发出请求,再将结果转发回本地客户端。代理服务器作用:1.防止攻击 隐藏自己的真实地址信息,还可隐藏自己的IP,防止被黑客攻击。 2.缓存 把经常访问的一些文档、页面缓存到代理服务器上,这样,可以减少访问从远程服务器上下载文档、页面原创 2017-08-10 22:58:08 · 31541 阅读 · 1 评论 -
CookiePolicy 原理解析
CookiePolicy策略可以精确控制程序接收那些cookie,拒绝接受那些cookie。CookiePolicy 策略机制解析public interface CookiePolicy { public static final CookiePolicy ACCEPT_ALL = new CookiePolicy(){ public boolean shouldAccept原创 2017-08-10 22:59:31 · 7872 阅读 · 0 评论 -
HttpURLConnection 中Cookie 使用
如果想通过 HttpURLConnection 访问网站,网站返回cookie信息,下次再通过HttpURLConnection访问时,把网站返回 cookie信息再返回给该网站。可以使用下面代码。CookieManager manager = new CookieManager();CookieHandler.setDefault(manager);通过这两行代码就可以把网站返回的cookie信原创 2017-08-10 23:00:30 · 18903 阅读 · 0 评论 -
HTTP 方法
HTTP协议 所有的方法 方法 说明 支持的HTTP协议版本 GET 获得资源 1.0、 1.1 POST 传输实体主体 1.0、 1.1 PUT 传输文件 1.0、 1.1 DELETE 删除文件 1.0、 1.1 HEAD 获得HTTP协议首部 1.0、 1.1 OPTIONS 询问HTTP服务器支持的HTTP协议的方原创 2017-08-04 09:48:09 · 1938 阅读 · 0 评论 -
URI 源码分析
需要提前了解下什么是URI,及URI和URL的区别: [URI、 URL 和 URN 的区别](http://www.jianshu.com/p/09ac6fc0f8cb)URI 引用包括最多三个部分:模式、模式特定部分和片段标识符。一般为: 模式:模式特定部分:片段 如果省略模式,这个URI引用则是相对的。如果省略片段标识符,这个URI引用就是一个纯URI。URI是对URL的抽象,不原创 2017-07-27 09:53:39 · 3969 阅读 · 0 评论 -
NIO 之 ByteBuffer实现原理
相关文章IO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理前言Java NIO 主要由下面3部分组成:BufferChannelSelector在传统IO中,流是基于字节的方式进行读写的。 在NIO中,使用通道(Channel)基于缓冲区数据块的读写。流是基于字节一个一个的读取和写入。 通道是基于块的方式进行读取和写入。Buf原创 2017-08-21 15:48:57 · 3602 阅读 · 0 评论 -
NIO 之 Channel实现原理
相关文章IO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 ByteBuffer实现原理NIO概述Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors在传统IO中,流是基于字节的方式进行读写的。 在NIO中,使用通道(Channel)基于缓冲区数据块的读写。Channel 和 IO 流的区别Java NIO的通道类原创 2017-08-21 15:50:04 · 2519 阅读 · 0 评论 -
NIO 之 Selector实现原理
相关文章NIO 之 ByteBuffer实现原理 NIO 之 Channel实现原理 NIO 之 Selector实现原理概述Selector允许单线程处理多个 Channel。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便。例如,在一个聊天服务器中。这是在一个单线程中使用一个Selector处理3个Channel的图示: 要使用Selector原创 2017-08-21 15:50:52 · 2279 阅读 · 0 评论 -
URL 源码分析
需要了解的知识点: URI、 URL 和 URN 的区别 URI 源码分析URL 和URI的最大区别是: URL可以定位到一个资源,也就是说,URL类可以访问URL指定的资源信息。 URI只是标识一个对象,所以URI类无法获取URI标识的对象。下面通过源码来分析URL类的实现细节:构造public URL(String spec);public URL(String protocol, S原创 2017-08-01 17:09:03 · 3145 阅读 · 0 评论