网络协议之:memcached text protocol详解-编程思维

目录简介memcached protocol介绍memcached支持的命令存储命令读取命令常用的其他命令memcached服务器的返回值支持UDP协议总结 简介 用过缓存系统的肯定都听过memcached的大名,memcached是一个非常优秀的分布式内存缓存系统,应用非常的广泛。Memcached不仅仅是Web缓存,它更是一个通用的数据缓存,基本上你可以将任何东西存入memcached中,它

网络协议之:haproxy的Proxy Protocol代理协议-编程思维

目录简介Proxy Protocol的实现细节版本1版本2Proxy Protocol的使用情况总结 简介 代理大家应该都很熟悉了,比较出名的像是nginx,apache HTTPD,stunnel等。 我们知道代理就是代替客户端向服务器端进行消息请求,并且希望在代理的过程中保留初始的TCP连接信息,例如源和目标IP和端口等,以提供一些个性化的操作。 一般情况下,为了实现这个目标,有一些现成的解

计算机编码规则之:Base64编码-编程思维

目录简介Base64和它的编码原理Base64的变体Base64的编码细节总结 简介 我们知道计算机中的文件可以分为两种,一种是人肉眼可读的文本类文件,一种是肉眼不可读的二进制文件。一般来说二进制文件如果用文本编辑器打开的话会显示乱码,并且二进制文件和文本文件的存储和传输方式是不一样的,那么有没有什么办法将二进制文件转换成为文本文件进行传输或者存储呢?答案是肯定的。 这种编码方式就是我们今天要讲

网络协议之:socket协议详解之Datagram Socket-编程思维

目录简介什么是Datagram Socket使用socat来创建UDP服务使用ss命令来监控Datagram Sockets使用nc建立和UDP Socket的连接总结 简介 上一篇文章我们讲解了Socket的分类和最常用到的Stream Socket,Stream Socket一般是基于TCP协议的,所以我们经常在web服务中能够看到他们的身影。当然TCP协议有个孪生兄弟叫做UDP,那么基于U

高级IO模型之kqueue和epoll-编程思维

目录简介block IO和nonblocking IOIO多路复用和selectpollepollkqueueepoll和kqueue的优势 简介 任何一个程序都离不开IO,有些是很明显的IO,比如文件的读写,也有一些是不明显的IO,比如网络数据的传输等。那么这些IO都有那些模式呢?我们在使用中应该如何选择呢?高级的IO模型kqueue和epoll是怎么工作的呢?一起来看看吧。 block IO

网络标准之:永远是1.0版本的MIME-编程思维

目录简介MIME详解MIME头MIME-VersionContent-TypeContent-DispositionContent-Transfer-EncodingEncoded-WordMultipart messages总结 简介 无规矩不成方圆,无标准不成网络通信。正是在各种网络协议和标准的基础之上,才构建了我们现在流行的互联网。今天给大家介绍的就是一个网络标准格式,叫做MIME,它的全

网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5-编程思维

目录简介为什么要使用SOCKSSOCKS5SOCKS5的使用总结 简介 存在即是合理,SOCKS5的出现是为了解决SOCKS4中不支持身份认证的大问题而出现的,毕竟大家对网络中的安全越来越重视了。没有认证的网络就好像是生活在摄像头下的人生,毫无隐私可言,实在是太可怕了。 今天给大家深入讲解一下SOCKS5和它的应用。 为什么要使用SOCKS SOCKS是一种代理服务协议,为什么会要有代理服务协议

听,是版本在说话-编程思维

目录简介让版本说话为什么需要管控版本语义化版本规范总结 简介 不知道大家都是怎么定义软件的版本号的?是老老实实的从1.0版本开始,还是像埃里森那样直接从2.0开始,还是从beta版本0.x开始呢? 虽然一眼看过去,我们肯定会希望使用版本号最高的那款软件,因为版本号越高,代表着其迭代越多,功能越稳定。 这里不讨论版本高低的好坏,这里要讨论的是如何让版本说话。 让版本说话 为什么要让版本说话?版本会

HTTP系列之:HTTP缓存-编程思维

目录简介HTTP中的缓存种类HTTP中缓存响应的状态HTTP中的缓存控制缓存刷新revving缓存校验Vary响应总结 简介 为了提高网站的访问速度和效率,我们需要设计各种各样的缓存,通过缓存可以避免不必要的额外数据传输和请求,从而提升网站的请求速度。对于HTTP协议来说,本身就自带有HTTP缓存。 今天我们就深入探讨一下HTTP中的缓存机制和使用。 HTTP中的缓存种类 缓存就是将请求的资源在

HTTP系列之:HTTP中的cookies-编程思维

目录简介cookies的作用创建cookiescookies的生存时间cookies的权限控制第三方cookies总结 简介 如果小伙伴最近有访问国外的一些标准网站的话,可能经常会弹出一个对话框,说是本网站为了更好的体验和跟踪,需要访问你的cookies,问你同意不同意,对于这种比较文明的做法,我一般是点同意的。 但是转头一想,为什么访问国内的网站从来没有弹出过这个提示呢?这是一个值得深思的问题

网络协议之:WebSocket的消息格式-编程思维

目录简介WebSocket的握手流程webSocket的消息格式Extensions和Subprotocols总结 简介 我们知道WebSocket是建立在TCP协议基础上的一种网络协议,用来进行客户端和服务器端的实时通信。非常的好用。最简单的使用WebSocket的办法就是直接使用浏览器的API和服务器端进行通信。 本文将会深入分析WebSocket的消息交互格式,让大家得以明白,websoc

小学生都能读懂的网络协议之:WebSocket-编程思维

目录简介webSocket vs HTTPHTTP upgrade headerwebsocket的优点webScoket的应用websocket的握手流程WebSocket API总结 简介 服务端和客户端应该怎么进行通信呢?我们常见的方法就是客户端向服务器端发送一个请求,然后服务器端向客户端发送返回的响应。这种做法比较简单,逻辑也很清晰,但是在某些情况下,这种操作方式并不好使。 比如在服务器

安全系列之:跨域资源共享CORS-编程思维

目录简介CORS举例CORS protocolHTTP request headersHTTP response headers基本CORSPreflighted requests带认证的请求总结 简介 什么是跨域资源共享呢? 我们知道一个域是由scheme、domain和port三部分来组成的,这三个部分可以唯一标记一个域,或者一个服务器请求的地址。跨域资源共享的意思就是服务器允许其他的域来访

HTTP协议之:HTTP/1.1和HTTP/2-编程思维

目录简介HTTP/1.1HTTP/2传输模式对比流优先级缓冲区溢出处理预测资源请求压缩总结 简介 HTTP的全称是Hypertext Transfer Protocol,是在1989年World Wide Web发展起来之后出现的标准协议,用来在WWW上传输数据。HTTP/1.1是1997年在原始的HTTP协议基础上进行的补充和优化。 到了2015年,为了适应快速发送的web应用和现代浏览器的需