![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
协议
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
40张图彻底揭秘:输入网址究竟发生了什么?
本文公众号来源:我是程序员小贱作者:L的存在本文已收录至我的GitHub计算机网络的重要程度不言而言,也是非常的复杂。今天我将从输入URL这个简单例子开始,一起探索数据包的心路历程。先看文章的大纲。大纲1 源头------网址网址即平时所说的URL。就是经常使用的以“Http://”开头的那一串东东,其实常用的还有很多,比如 "FTP" , "FILE"等,我们所访问的目标网站不同,网址开头的写法也就不同,下面列出常见的几种URL。URL基本格式从上图...转载 2020-08-18 15:26:16 · 519 阅读 · 0 评论 -
三天两夜肝完这篇万字长文,终于拿下了TCP/IP
前言计算机网络是一门基础课程,但是老师所讲的东西无非起到一个抛砖引玉的作用。然而对于需要自学的人来说,无疑是更难的。前路漫漫~~计算机网络本来就是比较枯燥的,文章内容较多,建议读者耐心看完这篇文章,希望大家看完后都能有所收获。先把这篇文章的大致结构放上来。预备知识谢希仁的那本《计算机网络》是很多大学选择的计网教材,在第一章是一个概论,大致讲了计算机网络的发展,也可以说是每个人都必须了解的小常识。在这里,我就做一个总结概括,把它作为学习计网预备知识。互联网简史 第一阶段:20世纪转载 2020-08-15 09:11:25 · 338 阅读 · 0 评论 -
TCP 协议面试灵魂10问,建议收藏~
Proc先亮出这篇文章的思维导图TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。001. 能不能说一说 TCP 和 UDP 的区别?首先概括一下基本的区别:TCP是一个面向连接的、可靠的、基于字节流的传输层协议。而UDP是一个面向无连接的传输层协议。(就这么简单,其它TCP的特性也就没有了)。具体来分析,和UDP相比,TCP有三大核心特性: 面向连接。所谓的连接,指的...转载 2020-07-23 16:39:06 · 487 阅读 · 0 评论 -
以女朋友为例讲解 TCP/IP 三次握手与四次挥手
来自:开源中国,作者:Champin链接:https://my.oschina.net/u/3708120/blog/1581023背景和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。从好上开始,到现在,一年多也算坚持下来了。问题有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。中间双方可能就要不断的确认网络是否恢复,但是有时候会:她:“你可以听到了吗?”我:“可以了,你呢?”、她:“喂喂,你可.转载 2020-06-28 21:07:25 · 216 阅读 · 0 评论 -
HTTPS 的工作原理
当你打开浏览器,访问某个网站,如果网址旁有个小锁,代表访问的网址是安全的,反之不安全。当我们没有看到那个小锁的小图标的时候,需要提高警惕,不要随意输入个人重要的资料。所有的银行和支付相关的网站都是100%使用HTTPS的。google我们为什么需要HTTPS?主要有三个原因: 保护隐私(Privacy):所有信息都是加密传播,第三方无法窃听数据。如果使用HTTP明文传输数据的话,很可能被第三方劫持数据,那么所输入的密码或者其他个人资料都被暴露在他人面前,后果可想而知。 数据完整.转载 2020-06-19 15:56:48 · 294 阅读 · 0 评论 -
Netty实现自定义协议
关于协议,使用最为广泛的是HTTP协议,但是在一些服务交互领域,其使用则相对较少,主要原因有三方面: HTTP协议会携带诸如header和cookie等信息,其本身对字节的利用率也较低,这使得HTTP协议比较臃肿,在承载相同信息的情况下,HTTP协议将需要发送更多的数据包; HTTP协议是基于TCP的短连接,其在每次请求和响应的时候都需要进行三次握手和四次挥手,由于服务的交互设计一般都要求能够承载高并发的请求,因而HTTP协议这种频繁的握手和挥手动作会极大的影响服务之间交互的效率;转载 2020-05-26 15:00:55 · 422 阅读 · 2 评论 -
从你输入一个网址,到网页显示,其间发生了什么?
来源:小林coding想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。这次,小林我带大家一起探究下,一个数据包在网络中的心路历程。每个阶段都有数据包的「心路历程」,我们一起看看它说了什么?正文接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么?简单的网络模型01 孤单...转载 2020-04-24 18:35:04 · 373 阅读 · 0 评论 -
(多图)老弟,你连HTTPS 原理都不懂,还给我讲“中间人攻击”,逗我吗...
HTTPS随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议。大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA证书等,但对于以下灵魂三拷问可能就答不上了: 为什么用了 HTTPS 就是安全的? HTTPS 的底层原理如何实现? 用了 HTTPS 就一定安全吗? 本文将...转载 2020-01-15 17:28:31 · 510 阅读 · 0 评论 -
面试官问:你来讲下Netty通信中的粘包、拆包?
作者:Java技术剑来源:https://urlify.cn/IF3YJv在进行Java NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。一、什么是粘包和拆包?现在假设客户端向服务端连续发送了两个数据包,用packet1和packet2来表示,那么服务端收到的数据可以...转载 2019-12-17 11:05:07 · 130 阅读 · 0 评论 -
全双工通信的 WebSocket
一. WebSocket 是什么?WebSocket 是一种网络通信协议。在 2009 年诞生,于 2011 年被 IETF 定为标准 RFC 6455 通信标准。并由 RFC7936 补充规范。WebSocket API 也被 W3C 定为标准。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工(full-duplex)通讯的协议。没有了 Reques...转载 2019-12-10 09:33:09 · 245 阅读 · 0 评论 -
为什么RESTful很糟糕?
周六晚上,RESTful发明人罗伊悄悄来到了咖啡馆,他想看看自己引以为傲的RESTful到底用得怎么样。 (RESTful的故事参见《RPC发展简史》)靠着门的那张桌子有一帮人,他们居然还在讨论老掉牙的Java RMI,似乎遇到了什么技术难题。 看来无论是什么技术,都会有非常古老的遗留系统需要维护,真是苦逼的程序员啊, 罗伊感慨。 这边的一群人在讨论Google的Protobuf ...转载 2018-12-24 21:45:50 · 947 阅读 · 3 评论 -
七个步骤,带你快速读懂 RPC 框架原理
1. RPC框架的概念RPC(Remote Procedure Call)–远程过程调用,通过网络通信调用不同的服务,共同支撑一个软件系统,微服务实现的基石技术。使用RPC可以解耦系统,方便维护,同时增加系统处理请求的能力。上面是一个简单的软件系统结构,我们拆分出来用户系统和订单系统做为服务存在,让不同的站点去调用。只需要引入各个服务的接口包,在代码中调用RPC服务就跟调用本地方法...转载 2018-12-30 10:24:43 · 1849 阅读 · 1 评论 -
99%的人都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标...转载 2019-02-02 14:56:26 · 168 阅读 · 0 评论 -
图解从 URL 到网页通信原理
前言互联网的原始目的,就是为了传输文本(文本对话)。那我们使用浏览器发送请求后页面是如何呈现在我们面前的呢? 接下来由图片介绍下URL到呈现页面的过程。一、文本对话--从请求到响应客户端(浏览器)请求过程我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容。实际上这个过程是:(1)浏览器向网站所在的服务器发送了一个 Request(请求)(2)网站服务器接收到这...转载 2019-03-01 09:28:57 · 476 阅读 · 0 评论 -
软件开发中的开源协议详解!
作者:pdaicnblogs.com/pengdai/p/9227404.html开源不等于免费!为了加速我们的开发,我们会使用开源的软件和源码; 为避免商业风险,需要在使用时了解第三方如软件协议,版本,和已知CVE风险等;本文旨在从开源软件再发布过程使用权限的角度入手,总结各个常见开源协议的异同,方便理解。大部分人都希望作品能够被多数人分享查阅。这样不仅提高自己业界的知名度,同时也...转载 2019-02-25 20:44:07 · 585 阅读 · 0 评论 -
我的HTTP/3学习笔记
本文转载自公众号余晟以为去年(2018年)1月,沪江的两位前端工程师翻译了O’Reilly的《HTTP/2基础教程》。似乎到目前为止,这似乎仍然是唯一关于HTTP/2的中文技术资料。然而技术的发展总是让人目不暇接,去年10月,HTTP/3又发布了。虽然已经有一些中文技术媒体做了报道,但大多数是翻译的,而且内容大同小异。最近我专门学习了点关于HTTP/3的知识,在这里随便写写...转载 2019-03-06 17:05:42 · 302 阅读 · 0 评论 -
一次彻底搞透协议设计(没做过通讯底层也没有关系)!
系统设计,协议先行。大部分人不了解协议的设计细节,更多使用已有协议进行应用层设计,例如:(1)使用HTTP,设计get/post/cookie参数,以及json包格式;(2)使用dubbo,而不用去深究内部的二进制包头包体细节;无论如何,了解协议设计的原则,对深入理解系统通信非常有帮助。一、协议的分层设计所谓“协议”,是双方共同遵守的规则,例如:离婚协议,停战协议。协议有语...转载 2019-03-13 09:42:41 · 195 阅读 · 0 评论 -
一篇文章读懂HTTPS及其背后的加密原理
本文来自作者投稿,原作者:安静的boy,Hollis做了简单的修改与排版。HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。本文,就来深入介绍下其原理。1为什么需要https使用https的原因其实很简单,就是因为http的不安全。当我们往服务器发送比较隐...转载 2019-04-09 15:01:32 · 316 阅读 · 0 评论 -
基于 HTTP 协议的 3 种实时数据获取技术
HTTP协议HTTP协议大家都很熟悉了,开始本文之前,首先简单回顾一下HTTP协议。HTTP协议是建立在TCP协议上的应用层协议,协议的本质是请求----应答:即对于HTTP协议来说,服务端给一次响应后整个请求就结束了,这是HTTP请求最大的特点,也是由于这个特点,HTTP请求无法做到的是服务端向客户端主动推送数据。但由于HTTP协议的广泛应用,很多时候确实又想使用HTTP协议...转载 2019-04-16 11:06:32 · 315 阅读 · 0 评论 -
Java 中几种常用的 RPC 框架介绍
RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。RPC还有一个特点就是能够跨语言,本文只以JAVA语言里的RPC为例。对于RPC有一个逻辑关系图,以RMI为例:其他的框架结构也类似,区别在于对象的序列化方法,传输对象的通讯协议,以及注册中心的管...转载 2019-05-06 10:27:17 · 2288 阅读 · 0 评论 -
人人都是 API 设计者:我对 RESTful API、GraphQL、RPC API 的思考
有一段时间没怎么写文章了,今天提笔写一篇自己对 API 设计的思考。首先,为什么写这个话题呢?其一,我阅读了《阿里研究员谷朴:API 设计最佳实践的思考》一文后受益良多,前两天并转载了这篇文章也引发了广大读者的兴趣,我觉得我应该把我自己的思考整理成文与大家一起分享与碰撞。其二,我觉得我针对这个话题,可以半个小时之内搞定,争取在 1 点前关灯睡觉,哈哈。现在,我们来一起探讨 API 的设计之道...转载 2019-05-18 10:21:23 · 539 阅读 · 0 评论 -
用Telnet发送HTTP请求
1.telnet google.com 802.Telnet窗口中按下“Ctrl+]”;然后,输入“set localecho”命令,再连续按两次回车键3.输入GET/HTTP/1.1Host:www.sohu.com /*这句话可不要*//*另外你可以用网页数据分析工具查看相应的输入信息,如httpwatch*/再连续按两次回车键,该命令表示向go...转载 2019-06-20 16:59:49 · 7830 阅读 · 0 评论 -
疯了吧!面试官 5 连问一个 TCP 连接可以发多少个 HTTP 请求?
曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?要搞懂这个问题,我们需要先解决下面五个问题: 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断...转载 2019-06-25 17:39:27 · 343 阅读 · 0 评论 -
理清 WebSocket 和 HTTP 的关系
最近公司内部同事分享了WebSocket相关的一些知识,之前也用过WebSocket做过一个即时通信的应用。基本上但凡提到WebSocket和HTTP的关系都会有以下两条: WebSocket和HTTP都是基于TCP协议的两个不同的协议 WebSocket依赖于HTTP连接 作为结论性的总结,直接了当,但是我需要更多的实现细节来解释上述结论。 因为都是基于TCP的两个独立...转载 2019-06-23 09:00:12 · 856 阅读 · 2 评论 -
轻松理解https,So easy!
作者:翟志军https://showme.codes/2017-02-20/understand-https/本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发...转载 2019-06-23 09:13:41 · 243 阅读 · 0 评论 -
完整的一次 HTTP 请求响应过程(一)
因特网无疑是人类有史以来最伟大的设计,它互联了全球数亿台计算机、通讯设备,即便位于地球两端的用户也可在顷刻间完成通讯。可以说『协议』是支撑这么一个庞大而复杂的系统有条不紊运作的核心,而所谓『协议』就是通讯双方所必须遵守的规则,在这种规则下,不同的数据报可能被解析为不同的响应动作。简而言之,『协议』就是指如果发送和接收方按照这个规则进行数据报文的发送,即可在基本的数据传输之上得到某些特殊的功...转载 2018-06-28 14:55:05 · 286 阅读 · 0 评论 -
咖啡馆的故事:FTP, RMI , XML-RPC, SOAP, REST一网打尽
周末的咖啡馆有点奇怪, 一群人围着几个老头儿在聊天。 “快说说,你们那个时候没有HTTP, 没有JavaScript,到底是怎么让这些机器上的程序进行'交谈'的?” ftp老头儿满脸沧桑,喝了一口咖啡,说道:“简单得很,机器A通过我,就是ftp, 上传一个文件到机器B的指定路径,然后再让rexec 去调用机器B上的程序,这程序是程序员写的,可以读取FTP目录下的文件,执行业务逻辑就行...转载 2018-12-24 21:39:24 · 653 阅读 · 0 评论 -
也许,这样理解 HTTPS 更容易
本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。我们先不聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个hello消息给B:如果我们要实现这个聊天软件,本文只考虑安全性问题,要实现 A发给B的hello...转载 2018-12-15 10:26:32 · 283 阅读 · 1 评论 -
深入了解 gRPC:协议
gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。本文作者深入研究了 gRPC 协议,对协议本身作出解构。gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HT...转载 2018-11-30 16:40:47 · 595 阅读 · 0 评论 -
Nomad技术手册:共识协议(Consensus Protocol)
Nomad使用共识协议来提供一致性(由CAP定义)。共识协议的基础是“Raft:寻找一种可以理解的共识算法”。有关Raft的可视化解释,请参见数据的秘密生命。高级主题!这个页面涵盖了Nomad内部的技术细节。您不需要知道这些细节就可以有效地操作和使用Nomad。对于那些希望了解这些细节而不需要通过源代码进行深入研究的人来说,这些细节在这里都有文档说明。Raft 协议概观Raft是一种基...翻译 2018-10-26 21:35:12 · 3562 阅读 · 1 评论 -
利用Comet4J 及时推送消息
简介Comet4J是一个微型的即时推送框架,它分为服务端与客户端两部分,你只要将服务器端(JAR文件,目前仅支持Tomcat6、7)放入WEB-INF\lib,客户端(JavaScript文件)引入到页面,那么你的应用就具备了向客户端推送信息的能力,而你仅需要在服务器端调用Comet4J所提供发送方法,信息就会被主动的推送到客户的浏览器上。 准备工作 下载服务端...转载 2016-11-30 16:45:54 · 438 阅读 · 0 评论 -
GO 语言websocket编程
GO提供原生的websocket API,使用时go get然后引用即可golang.org/x/net/websocket使用起来也很方便,直接上代码吧。一个echo server的代码package mainimport( "golang.org/x/net/websocket" "fmt" "net/http" "flag")type W...转载 2018-09-29 20:54:18 · 2112 阅读 · 1 评论 -
看完让你彻底搞懂Websocket原理
偶然在知乎上看到一篇回帖,瞬间觉得之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有。所以转到我博客里,分享一下。比较喜欢看这种博客,读起来很轻松,不枯燥,没有布道师的阵仗,纯粹为分享。废话这么多了,最后再赞一个~一、websocket与httpWebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接...转载 2018-09-29 20:52:43 · 2960 阅读 · 2 评论 -
完整的一次 HTTP 请求响应过程(一)
因特网无疑是人类有史以来最伟大的设计,它互联了全球数亿台计算机、通讯设备,即便位于地球两端的用户也可在顷刻间完成通讯。可以说『协议』是支撑这么一个庞大而复杂的系统有条不紊运作的核心,而所谓『协议』就是通讯双方所必须遵守的规则,在这种规则下,不同的数据报可能被解析为不同的响应动作。简而言之,『协议』就是指如果发送和接收方按照这个规则进行数据报文的发送,即可在基本的数据传输之上得到某些特殊的功...转载 2018-08-20 15:44:26 · 938 阅读 · 0 评论 -
完整的一次 HTTP 请求响应过程(二)
上篇文章 我们完整的描述了计算机五层模型中的『应用层』和『运输层』,阐述了较为复杂的 TCP 协议的相关原理,相信大家一定也有所收获,那么本篇将继续五层模型的学习。网络层『网络层』其实解决的就是一个「转发」的问题,通过传说中的『IP 协议』划分了网络范围,即我没有直接用网线和你连在一起,我也能通过你的 IP 分析出该怎么样找到负责你的网关路由器,并通过你的网关路由给你传输数据报。这就是...转载 2018-08-20 15:50:25 · 376 阅读 · 0 评论 -
TCP 三次握手原理,你真的理解吗?
阿里妹导读:最近,阿里中间件小哥哥蛰剑碰到一个问题——client端连接服务器总是抛异常。在反复定位分析、并查阅各种资料文章搞懂后,他发现没有文章把这两个队列以及怎么观察他们的指标说清楚。 因此,蛰剑写下这篇文章,希望借此能把这个问题说清楚。欢迎大家一起交流探讨。 问题描述 场景:JAVA的client和server,使用socket通信。server使用NIO。 ...转载 2018-07-05 17:47:53 · 267 阅读 · 0 评论 -
【Consul】Consul架构-Gossip协议
Consul使用gossip协议管理成员关系、广播消息到整个集群。详情可参考Serf library,Serf使用到的gossip协议可以参阅"SWIM: Scalable Weakly-consistent Infection-styleProcess Group Membership Protocol", 本节主要讲解consul内部技术细节,使用consul不需要必须了解这...转载 2018-03-20 10:25:36 · 1266 阅读 · 0 评论 -
raft原理的动画演示
过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑。 来自Stanford的新的分布式协议研究称为Raft,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。 在了解Raft之前,我们先了解Consensus一致性这个概念,它是指多个服务器在状态达成一致,但是在一个...原创 2018-03-20 10:32:51 · 5614 阅读 · 0 评论 -
GRPC原理解析
GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP2协议,基于protobuf 3.x,基于Netty 4.x +。GRPC与thrift、avro-rpc等其实在总体原理上并没有太大的区别,简而言之GRPC并没有太多突破性的创新。(如下描述,均基于JAVA语言的实现) 对于开发者而言: 1)需要使用protobuf定义接口,即.proto文件 ...转载 2017-12-12 10:28:40 · 11175 阅读 · 1 评论 -
HTTP、HTTP2.0、SPDY、HTTPS 你应该知道的一些事
作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处还请指出。 1. web始祖HTTP 全称:超文本传输协议(HyperText Transfer Protocol) 伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机...转载 2017-04-17 13:41:28 · 804 阅读 · 0 评论