
Web
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
40张图彻底揭秘:输入网址究竟发生了什么?
本文公众号来源:我是程序员小贱作者:L的存在本文已收录至我的GitHub计算机网络的重要程度不言而言,也是非常的复杂。今天我将从输入URL这个简单例子开始,一起探索数据包的心路历程。先看文章的大纲。大纲1 源头------网址网址即平时所说的URL。就是经常使用的以“Http://”开头的那一串东东,其实常用的还有很多,比如 "FTP" , "FILE"等,我们所访问的目标网站不同,网址开头的写法也就不同,下面列出常见的几种URL。URL基本格式从上图...转载 2020-08-18 15:26:16 · 571 阅读 · 0 评论 -
手把手教你,Java如何实现二维码?【附源码】
作者:红颜祸水nvn来源:http://suo.im/5R6ewH步骤1第一步首先创建一个普通的 Maven 项目,然后要实现二维码功能,我们肯定要使用别人提供好的 Jar 包,这里我用的是 google 提供的 jar,pom.xml 文件配置如下:<?xml version="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="...转载 2020-08-03 10:21:21 · 520 阅读 · 0 评论 -
用 HTTPS 就安全了?HTTPS 会被抓包吗?
本文来自leapMie 的博客:https://blog.leapmie.com/archives/418/随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议。大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称加密、 CA证书等,但对于以下灵魂三拷问可能就答不上了: 为什么用了 HTTPS 就是安全的? HTTPS 的底层原理如何实现? 用了 HTTPS 就一定安全吗? 本文...转载 2020-07-25 14:14:57 · 711 阅读 · 0 评论 -
参数验证 @Validated 和 @Valid 的区别,Java Web 开发必备。
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303 规范,是标准 JSR-303 的一个变种),javax提供了@Valid(标准JSR-303规范),配合 BindingResult 可以直接提供参数验证结果。其中对于字段的特定验证注解比如 @NotNull 等网上到处都有,这里不详述在检验 Controller 的入参是否符合规范时,使用 @Validated 或者 @Valid 在基本验证功能上没有太多区别。但是在分组、注解地方、转载 2020-07-23 16:42:20 · 282 阅读 · 0 评论 -
深入理解LVS,还学不会算我输!
“如今,在各种互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求也越来越高,单台服务器也将难以无法承担所有的访问需求。图片来自 Pexels当然了,除了使用性价比高的设备和专用负载分流设备外,还有一些其他选择来帮你解决此问题,就是搭建集群服务器通过整合多台普通的服务器设备并以同一个地址对外提供相同的服务。今天就带大家学习企业中常用的一种群集技术 LVS: 什么是 LVS 为什么要用 LVS LVS 的组成及作用 负载均衡的由来及所.转载 2020-07-18 22:52:50 · 529 阅读 · 0 评论 -
So easy!Nginx+SpringBoot 实现负载均衡
在介绍Nginx的负载均衡实现之前,先简单的说下负载均衡的分类,主要分为硬件负载均衡和软件负载均衡,硬件负载均衡是使用专门的软件和硬件相结合的设备,设备商会提供完整成熟的解决方案,比如F5,在数据的稳定性以及安全性来说非常可靠,但是相比软件而言造价会更加昂贵;软件的负载均衡以Nginx这类软件为主,实现的一种消息队列分发机制。简单来说所谓的负载均衡就是把很多请求进行分流,将他们分配到不同的服务器去处理。比如我有3个服务器,分别为A、B、C,然后使用Nginx进行负载均衡,使用轮询策略,此时如果收到了9个转载 2020-07-18 11:30:15 · 271 阅读 · 0 评论 -
Netty解决粘包和拆包问题的四种方案
在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。这里说明一下,由于oschina将“jie ma qi”认定为敏感文字,因而本文统一使用“解码一器”表示该含义1. 粘包和拆包产生粘包和拆包问题的..转载 2020-07-10 20:26:20 · 304 阅读 · 0 评论 -
实战:使用Nginx限流
Nginx不仅可以做Web服务器、做反向代理、负载均衡,还可以做限流系统。此处我们就Nginx为例,介绍一下如何配置一个限流系统。Nginx使用的限流算法是漏桶算法。(1)是安装Nginx。Nginx的安装我们在8.5.7中已经详细叙述过,此处简单再提一下:如果你的Linux是Ubuntu或Debian,使用apt-get安装,在命令行中输入以下命令:$ sudo apt-get update$ sudo apt-get install nginx如果是CentOS,使用yum安装,转载 2020-07-10 20:18:54 · 619 阅读 · 0 评论 -
Java 的 JSP 已经被淘汰了吗?
以前的项目大多数都是java程序猿又当爹又当妈,又搞前端(ajax/jquery/js/html/css等等),又搞后端(java/mysql/Oracle等等)。随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情,正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开。你要是这辈子就吃java这碗饭,就不要去研究什么css,js等等。把你的精转载 2020-07-06 13:36:14 · 796 阅读 · 1 评论 -
因为一个跨域请求,我差点丢了饭碗!
浏览器基本原理我叫小风,是Windows帝国一个普通的上班族。今天,我入职了一家浏览器公司,公司的主营业务是为人类提供Internet上网服务,我的岗位是负责执行JavaScript代码。上午的晨会上,认识了负责网络连接的老白,所有网络请求都得找他帮忙,还有负责存储管理的小黑,什么Cookie,LocalStorage,SessionStorage之类的都归他管。哦,差点忘了,还有一个妹子小雪,她负责网页渲染。随后主管安排了我的工作:老白从网络取回网页之后交给小雪来解析渲染,遇到网页中的转载 2020-06-29 19:12:09 · 287 阅读 · 0 评论 -
以女朋友为例讲解 TCP/IP 三次握手与四次挥手
来自:开源中国,作者:Champin链接:https://my.oschina.net/u/3708120/blog/1581023背景和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。从好上开始,到现在,一年多也算坚持下来了。问题有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。中间双方可能就要不断的确认网络是否恢复,但是有时候会:她:“你可以听到了吗?”我:“可以了,你呢?”、她:“喂喂,你可.转载 2020-06-28 21:07:25 · 241 阅读 · 0 评论 -
HTTPS 的工作原理
当你打开浏览器,访问某个网站,如果网址旁有个小锁,代表访问的网址是安全的,反之不安全。当我们没有看到那个小锁的小图标的时候,需要提高警惕,不要随意输入个人重要的资料。所有的银行和支付相关的网站都是100%使用HTTPS的。google我们为什么需要HTTPS?主要有三个原因: 保护隐私(Privacy):所有信息都是加密传播,第三方无法窃听数据。如果使用HTTP明文传输数据的话,很可能被第三方劫持数据,那么所输入的密码或者其他个人资料都被暴露在他人面前,后果可想而知。 数据完整.转载 2020-06-19 15:56:48 · 321 阅读 · 0 评论 -
用户一键登陆,如何实现?了解一下!
我们先来看一下目前的一些登录方式:账号、密码登陆使用账号加密码是最传统的登录方式,可以说是简单粗暴的,一般也不会出现什么问题。缺点但这种方式要求用户要记住自己的账号和密码,也就是有一个记忆成本。用户为了降低记忆成本,很可能会在不同平台使用同一套账号密码。从安全角度考虑,一旦某个平台的账号密码泄露了,会连累到该用户使用的其他平台。另外,由于账号和个人身份无关,意味着同一个用户可以注册多个不同的账号,也就是可能会有恶意注册的情况发生。为解决这两个问题,理想的情况就是使用一个和用户身份转载 2020-06-15 19:37:03 · 1081 阅读 · 0 评论 -
点赞功能,用 MySQL?还是 Redis!
点赞功能是目前app开发基本的功能今天我们就来聊聊 点赞、评论、收藏等这些场景的db数据库设计问题,1. 我们先来看看场景的需求: 显示点赞数量 判断用户是否点过赞,用于去重,必须的判断 显示个人点赞列表,一般在用户中心 显示文章点赞列表 我们先看一下头条和微博的例子这两个都是具有顶级流量的,后端肯定有复杂的架构,我们今天只谈大众化的方案。2.1 mysql方案mysql方案, 随着nosql的流行,大数据的持续热点,但是mysql仍然不可.转载 2020-06-15 18:56:48 · 783 阅读 · 0 评论 -
Spring MVC 接收请求参数所有方式总结!
来源:简书,作者:zhrowable链接:https://www.jianshu.com/p/5f6abd08ee08SpringMVC请求参数接收其实一般的表单或者JSON数据的请求都是相对简单的,一些复杂的处理主要包括URL路径参数、文件上传、数组或者列表类型数据等。另外,关于参数类型中存在日期类型属性(例如java.util.Date、java.sql.Date、java.time.LocalDate、java.time.LocalDateTime),解析的时候一般需要自定义实现的逻.转载 2020-06-15 17:56:58 · 1058 阅读 · 0 评论 -
Nginx 为什么快到根本停不下来?
Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快!Nginx 的进程模型Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程。 Master 进程:管理 Worker 进程。对外接口:接收外部的操作(信号);对内转发:根据外部的操作的不同,通过信号管理 Worker;监控:监控 Worker 进程的运行状态,Worker 进程异常终止后,自动重启 Worker ...转载 2020-06-06 10:52:07 · 310 阅读 · 0 评论 -
从0到70%:Chrome上位揭秘!
最近的数据显示,Chrome在2020年4月的市场份额达到了70%左右,把微软的Edge和Firefox远远甩在身后,毫无疑问,Chrome赢得了第二次游览器之战,成为新一代王者。Chrome的第一版于2008年推出,当时微软的IE浏览器几乎占到了60%的份额,Firefox紧随其后,占据了大概30%,Chrome在2008年仅占0.3%。十年以后Chrome就主导了浏览器的市场, 这一切是怎么发生的?我们先来回顾一下第一次浏览器之战,交战的双方是Netscape的Navigator浏览器和转载 2020-05-11 14:26:46 · 372 阅读 · 0 评论 -
“RPC 好,还是 RESTful 好?” 不要选错了!
来源:www.toutiao.com/i6752793853293494798RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!下面来具体说一说RPC服务和HTTP服务。OSI网络七层模型在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型...转载 2020-03-08 21:50:27 · 376 阅读 · 0 评论 -
理清 WebSocket 和 HTTP 的关系
最近公司内部同事分享了WebSocket相关的一些知识,之前也用过WebSocket做过一个即时通信的应用。基本上但凡提到WebSocket和HTTP的关系都会有以下两条: WebSocket和HTTP都是基于TCP协议的两个不同的协议 WebSocket依赖于HTTP连接 作为结论性的总结,直接了当,但是我需要更多的实现细节来解释上述结论。因为都是基于TCP的两个独立的...转载 2019-12-06 10:40:16 · 360 阅读 · 0 评论 -
JS校验金额格式的正则表达式
function checkAmount() { var amount = $("#amount").val();if(amount!= null && amount != ""&&amount!="0"){var exp = /^(([1-9]\d*)|\d)(\.\d{1,2})?$/;if(!exp.test(amount)){...转载 2015-07-16 16:32:12 · 11311 阅读 · 3 评论 -
JS语言核心
有些东西,对于初学者来说,可能看不懂,我在这里只是想说一下,JS里面有这么个情况,并不是说让你掌握,你只需要大致浏览一下就可以了。// 所有在双斜杠之后的内容都属于注释//变量是表示值的一个符号名字//变量通过var关键字来声明,案例:var x;//声明一个变量x //值可以通过等号赋值给变量x=0; //现在变量x的值为0x //=>0:通...转载 2015-08-14 12:49:09 · 3685 阅读 · 0 评论 -
鼠标划过表格行变色效果JS
<!--鼠标滑过表格行变色效果开始--><script type="text/javascript"> /* 当鼠标移到表格上是,当前一行背景变色 */ $(document).ready(function(){ $(".g-sun-li tr td").mouseover(function(){ ...原创 2015-07-21 09:45:25 · 3296 阅读 · 0 评论 -
Underscore.js 入门
Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率。它本身与我们介绍的主题“Backbone”没有半毛钱的关系,因此你可以完全不理会“Backbone”的概念来学习它,或将它单独运用到任何一个页面。(另外,Underscore还可以被使用在Node.js运行环境。) 在学习Underscore之前,你应该先保存它的API地址,因为你...转载 2016-06-24 17:18:04 · 399 阅读 · 0 评论 -
学习Javascript闭包(Closure)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 v...转载 2016-06-24 17:23:33 · 315 阅读 · 0 评论 -
Javascript的this用法
this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, function test(){ this.x = 1; }随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。下面分四种情况,详细讨论this的用法。情况一:纯粹的函数调用这是...转载 2016-06-27 09:07:32 · 304 阅读 · 0 评论 -
Javascript 面向对象编程(一):封装
学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍:《面向对象的Javascript》(Object-Oriented JavaScript)《Javascript高级程序设计(第二...转载 2016-06-27 09:12:27 · 434 阅读 · 0 评论 -
Javascript面向对象编程(二):构造函数的继承
这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。 function Animal(){ this.species = "动物"; }还有一个"猫"对象的构造函数。 function Cat(name,color){ th...转载 2016-06-27 09:15:21 · 351 阅读 · 0 评论 -
Javascript面向对象编程(三):非构造函数的继承
这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:'中国' };还有一个对象,叫做"医生"。 var Doctor ={ career:'医生'转载 2016-06-27 09:18:17 · 374 阅读 · 0 评论 -
Javascript继承机制的设计思想
我一直很难理解Javascript语言的继承机制。它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承。我花了很多时间,学习这个部分,还做了很多笔记。但是都属于强行记忆,无法从根本上理解。直到昨天,我读到法国程序员Vjeux的解释,才恍然大悟,完全明白了Javas...转载 2016-06-27 09:28:30 · 418 阅读 · 0 评论 -
如何判断Javascript对象是否存在
Javascript语言的设计不够严谨,很多地方一不小心就会出错。举例来说,请考虑以下情况。现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下: if (myObj不存在){ 声明myObj; }你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,...转载 2016-06-27 10:13:32 · 338 阅读 · 1 评论 -
jQuery设计思想
jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。对于网页开发者来说,学会jQuery是必要的。因为它让你了解业界最通用的技术,为将来学习更高级的库打下基础,并且确实可以很轻松地做出许多复杂的效果。虽然jQuery上手简单,比其他库容易学会,但是要全面掌...转载 2016-06-27 10:49:00 · 328 阅读 · 0 评论 -
jQuery的deferred对象详解
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。每个版本都会引入一些新功能。今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象。这个功能很重要,未来将成为jQuery的核心方法,它彻底改变了如何在jQuery中使用ajax。为了实现它,jQuery的全部ajax代码都被改写了。但是,它比较抽象,初学者很难掌握,网上的教程...转载 2016-06-27 14:18:32 · 362 阅读 · 0 评论 -
undefined与null的区别
大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null。这是为什么?一、相似性在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。var a = und...转载 2016-06-28 09:31:51 · 311 阅读 · 0 评论 -
JavaScript 有多灵活?
JavaScript 是一种灵活的语言,表达力极强,我来举一个例子,保证让很多人大吃一惊。本文受到了 Kyle Simpson 的文章《Iterating ES6 Numbers》的启发。首先,在 Number.prototype 对象上,部署一个 add 方法。Number.prototype.add = function (x) { return this + x;...转载 2016-06-28 10:56:01 · 528 阅读 · 0 评论 -
React 入门实例教程
现在最热门的前端框架,毫无疑问是 React 。上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩目程度可见一斑。React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5...转载 2016-06-28 11:08:34 · 514 阅读 · 0 评论 -
CSS Modules 用法教程
学过网页开发就会知道,CSS 不能算编程语言,只是网页样式的一种描述方法。为了让 CSS 也能适用软件工程方法,程序员想了各种办法,让它变得像一门编程语言。从最早的Less、SASS,到后来的 PostCSS,再到最近的 CSS in JS,都是为了解决这个问题。本文介绍的 CSS Modules 有所不同。它不是将 CSS 改造成编程语言,而是功能很单纯,只加入了局部作用域和模块依赖...转载 2016-06-29 09:36:39 · 1367 阅读 · 0 评论 -
自适应网页设计(Responsive Web Design)
随着3G的普及,越来越多的人使用手机上网。移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的...转载 2016-06-29 14:23:27 · 384 阅读 · 0 评论 -
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。...转载 2016-07-01 14:22:53 · 317 阅读 · 0 评论 -
MVC,MVP 和 MVVM 的图示
复杂的软件必须有清晰合理的架构,否则无法开发和维护。MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用。它本身很容易理解,但是要讲清楚,它与衍生的 MVP 和 MVVM 架构的区别就不容易了。昨天晚上,我读了《Scaling Isomorphic Javascript Code》,突然意识到,它们的区别非常简单。我用几段话,就可以说清。(题...转载 2016-07-01 14:24:47 · 367 阅读 · 0 评论 -
也许,DOM 不是答案
有一个词"手机网站"(mobile web),指供手机浏览的网站,但它是不存在的。人们提到"移动互联网"的时候,其实专指另外一样东西:手机App。一、Web App vs. Native App比起手机App,网站有一些明显的优点。跨平台:所有系统都能运行 免安装:打开浏览器,就能使用 快速部署:升级只需在服务器更新代码 超链接:可以与其他网站互连,可以被搜索引擎检索...转载 2016-07-01 14:36:29 · 277 阅读 · 0 评论