URIURI是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称。采用HTTP协议时,协议方案就是http。除此之外,还有ftp、mailto、telnet、file等。
Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
URI一般由三部组成:①访问资源的命名机制②存放资源的主机名③资源自身的名称,由路径表示,着重强调于资源。URLURL是uniform resource locator,统一资源定位器,表示资源的地点。可见 URL是 URI 的子集。URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL一般由三部组成:①协议(或称为服务方式)②存有该资源的主机IP地址(有时也包括端口号)③主机资源的具体地址。如目录和文件名等
计算机网络
未读http的作用和RPCHTTPHTTP是一个协议,超文本传输协议,它基于TCP/IP来传输文本、图片、视频、音频等。HTTP不提供数据包的传输功能,也就是数据包从浏览器到服务端再来回的传输和它没关系,这些是TCP/IP负责。传输信息需要一种格式,http规定了一种通信格式,让任何服务器和客户端之间都能顺利交流,减少交互成本。http协议的格式很像我们的信封,有个固定的格式。所以其本质上就是客户端和服务端约定好的一种通信格式。
RPCrpc 是应用层由用户自己在制定的协议
HTTP和RPC区别HTTP指的是通信协议。而RPC则是远程调用协议,其对应的是本地调用。RPC的通信可以使用用HTTP协议,也可以自定义协议,是不做约束的。
那为什么要有RPC?为什么要用RPC,直接使用WebClient HTTP调用不行么。其实RPC调用是因为服务的拆分,或者本身公司内部的多个服务之间的通信。服务的拆分独立部署,那服务间的调用就必然需要网络通信,用WebClient调用当然可行,但是比较麻烦。我们想即使服务被拆分了但是使用起来还是和之前本地调用一样方便。所以就出现了RPC框架, ...
计算机网络
未读http的常用方法GET用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。只请求服务端的数据,但是没有改变数据。
POST用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。比如上传一篇博客用的post会改变服务器端的数据。
PUT传输文件,报文主体中包含文件内容,保存到对应URI位置。
HEAD获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
DELETE删除文件,与PUT方法相反,删除对应URI位置的文件。
OPTIONS查询相应URI支持的HTTP方法。
get和post的区别https://www.cnblogs.com/logsharing/p/8448446.htmlGET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET ...
计算机网络
未读数据在五层网络中的传输https://mp.weixin.qq.com/s?__biz=Mzg2NzA4MTkxNQ==&mid=2247485105&idx=1&sn=c045b7599c1637776dd89890cac5a9b5&chksm=ce404d65f937c4736257f0795a0243a5cbe3526d88013074277fa2f44fa809e76f0330796bee&scene=21#wechat_redirect
五层网络模型中,自底向上的讲解一台计算机是如何找到另外一台计算机并且把数据发送给另一台计算机的。
1.物理层计算机之间要进行通信,第一件事当然是通过光纤,电缆,双绞线等介质把计算机互相连接起来。物理层就是负责把两台计算机连起来,然后在计算机之间通过高低电频来传送0,1这样的电信号。
2.数据链路层 传输的叫帧物理层传输的0,1电信号如果毫无规则的话,计算机是解读不了的。因此我们需要制定一套规则来进行0,1的传送。例如多少个电信号为一组啊,每一组信号应该如何标识等等。于是,有了以太网协议。
(1).以太网 ...
计算机网络
未读对称加密技术原理:文件加密和解密使用相同的密钥特点:使用起来简单快捷,密钥较短,加密效率高。
对称加密算法存在几个问题:1、要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥。2、密钥的数目难于管理。因为对于每一个合作者都需要使用不同的密钥。3、对称加密算法一般不能提供信息完整性的鉴别。它无法验证发送者和接受者的身份。4、对称加密是基于共同保守秘密来实现的,如果一方泄露那么加密信息也就不安全了。常用算法:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK
非对称加密技术原理:对称加密算法需要两个密钥,公开密钥(publickey)和私有密钥(privatekey)。如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
特点:算法强度复杂,速度远低于对称加密,安全性高。使用过程:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能 ...
计算机网络
未读子网掩码子网掩码它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
计算方式根据子网数:如欲将B类IP地址168.195.0.0划分成27个子网:
1231)27=11011 2)该二进制为五位数,N=5 3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0即为划分成27个子网的B类IP地址 168.195.0.0的子网掩码(实际上是划成了32-2=30个子网)。
根据主机数如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
123451) 700=1010111100 2)该二进制为十位数,N=10 3)将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255 然后再从后向前将后10位置0,即为:11111111.11111111.11111100.00000000即25 ...
Ruby 入门随笔变量全局变量定义:在变量名前加"$"
例如:
1$testString = "23333"
类成员123456class test #静态变量(类变量) @@A #普通类成员 @Bend
静态变量(类变量)定义:在变量名前加"@@"
普通类成员定义:在变量名前加"@"
访问类中的变量为变量设置getter方法 123def At @@Aend
这样一来就可以通过 $变量名.At 来调用@@A
通过attr_accessor为指定的属性创建 12345class test @@A @B attr_accessor :A,:Bend
等价于
123456class test @@A @B attr_reader :A,:B attr_writer :A,:Bend
与
1234567891011121314151617class test @@A @B def A @@A ...
计算机语言
未读shell 入门随笔判断1234567if [ command1 ];then codeelif [ command2 ];then codeelse codefi
循环for循环12345678910for 变量 in 列表do codedonefor ((i=0;i<n;i++))do codedone
while循环1234while [ command ]do codedone
文件读取12345cat 文件path | while read -r linedo#在这里line的最后一行有/r换行符,需要用sed过滤掉 newline = $(echo $line | sed 's/\r//')done
注:在声明变量时,变量名与值之间,等于与值之间不能有空格
不要使用rm -rf ./* 这种指令,如果目录不对非常危险,可以先cd..退出目录 ,再rm -rf ./文件夹名/
ArrayList和linkedListhttps://www.cnblogs.com/lingshang/p/10897912.html
List是一个接口,不可以实例化。List有两个重要的实现类:ArrayList和LinkedList
ArrayListArrayList: 可以看作是能够自动增长容量的数组(感觉跟C++STL中的Vector很像也是一个动态数组)ArrayList的toArray方法返回一个数组
ArrayList的asList方法返回一个列表
ArrayList底层的实现是Array, 数组扩容实现
LinkListLinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.当然,这些对比都是指数据量很大或者操作很频繁。
链表不需要连续的空间, 大小不确定
扩容机制,源码分析等继续参考https://www.cnblogs.com/lingshang/p/10897912.html
IDEA连接mysql-Server returns invalid timezone. Go to Advanced tab and set serverTimezone prope ‘serverTimezone’ prope 没有设置时区并且没有配置mysql匹配的驱动
https://blog.csdn.net/liuqiker/article/details/102455077
计算机语言
未读java的三种随机数生成方式完全取自这篇大佬文章:https://www.cnblogs.com/blogxjc/p/9687297.html
随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:
第一种: new Random()第一种需要借助java.util.Random类来产生一个随机数发生器,也是最常用的一种,构造函数有两个,Random()和Random(long seed)。第一个就是以当前时间为默认种子,第二个是以指定的种子值进行。产生之后,借助不同的语句产生不同类型的数。
种子就是产生随机数的第一次使用值,机制是通过一个函数,将这个种子的值转化为随机数空间中的某一个点上,并且产生的随机数均匀的散布在空间中。以后产生的随机数都与前一个随机数有关。以代码为例。
123456789public static void main(String[] args){ Random r = new Random(1); for(int i=0 ; i<5 ; i++) { int ran1 = r.ne ...
计算机语言
未读常用注解取自B站视频:https://www.bilibili.com/video/BV19K4y1L7MT?p=12&spm_id_from=pageDriver
@Configuration 与 @Bean123456789101112@Configurationpublic class test{ @Bean public User user1(){ return new User("滑稽","18"); } @Bean("tom") public Pet cat(){ return new Pet("tomcat"); }}
@Configuration告诉Springboot这是一个配置类,其作用相当于配置文件
@Configuration(proxyBeanMethods = true)
外部无论对配置类中的这个组件注册方法调用多少次获取的都是之前注册容器中的单实 ...









