我做的程序一般都是自己需要的(这个不算,只是一时兴起,最初做这个的契机是因为沪江小D(一个多语言翻译、查词等功能的网站),沪江小D的日语查询页面是自带一个点选输入日语的输入法:
前端从事了超过两年,修复了无数的bug,写了无数的bug;挖了很多次坑,填了很多次坑;犯了很多次错,弥补了很多次,学习了很多次。一般而言,对于bug、坑,都是修复完了或者填完了,并且记住为什么会产生bug,为什么有坑,为什么犯错,怎么解决的,下次怎么避免,就行了,就学习到了。而这一次的项目,原本以为开发挺顺利的,但是开发完了,才发现自己犯了一个低级而严重的错,这样的一个失误,我一直耿耿于怀。
轮询 :客户端以一定的时间间隔向服务端发出请求,以频繁请求的方式来保持客户端和服务器端的同步。
刚工作那会,有一次,上游调用我服务的老哥说,你的服务报"502错误了,快去看看是为什么吧"。
针对浏览器的http缓存的分析也算是老生常谈了,每隔一段时间就会冒出一篇不错的文章,其原理也是各大公司面试时几乎必考的问题。
很多时候我们提交数据到服务器端数据库都是用form表单,这样子是最普通最简单提交数据的方法,你填写完表单后,post提交到后台文件.php,处理完后返回到指定页面,最后,页面就重新刷新了一遍,显示预想的页面。当然,这个逻辑操作没一点毛病,但有一点,那就是给用户不好的体验:重新刷新了页面。假如,用户没按要求输错了某个值,然后弹出一个框框告诉你“亲爱的,你刚刚花了半个小时注册的内容得重新输入了!!”,这时候,你肯定的mmp的,所以,咱们今天要推举的ajax异步post提交数据到数据库来解决这个问题。
本篇只谈安装,后续会深入讲解Redis,比如它的内存管理,快照,订阅等待。针对不同的用户,Redis有Windows和Linux两种环境安装, 官网上下的是Statble版是Linux,大家一定要注意。由于本人做本地端,所以以下谈的是Windows安装。
app基本都有用户注册登录相关的操作,那么登录后服务器需要做什么?当用户发起其他的请求时,怎么确定用户的唯一性,根据什么来把app用户和服务器关联起来?
打开浏览器,输入地址,按下回车,打开了页面。于是一个HTTP请求(request)就由客户端发送到服务器,服务器处理请求,返回响应(response)内容。
以前大体介绍过,我们这边是做运维平台的。如果要形象化理解,那么,比如jenkins这种喜闻乐见的软件大致了解吧,jenkins就经常需要同步文件/版本包到远程机器上,jenkins怎么实现的,没去了解。
keep-alive 是通知服务器,在这个 HTTP Request/Responset 结束后,不要立即断开 TCP 连接(注意是TCP连接,和HTTP没有关系),后面的HTTP Request仍然可以通过这个TCP连接继续传送。
1开头的http状态码 表示临时响应并需要请求者继续执行操作的状态代码。 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2开头的http状态码 表示请求成功 200 成功处理了请求,一般情况下都是返回此状态码; 201 请求成功并且服务器创建了新的资源。 202 接受请求但没创建资源; 203 返回另一资源的请求; 204 服务器成功处理了请求,但没有返回任何内容; 205 服务器成功处理了请求,但没有返回任何内容; 206 处理部分请求; 3xx (重定向) 重定向代码,也是常见的代码 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。 305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。 307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 4开头的http状态码表示请求出错 400 服务器不理解请求的语法。 401 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。 403 服务器拒绝请求。 404 服务器找不到请求的网页。 405 禁用请求中指定的方法。 406 无法使用请求的内容特性响应请求的网页。 407 此状态代码与 401类似,但指定请求者应当授权使用代理。 408 服务器等候请求时发生超时。 409 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。 410 如果请求的资源已永久删除,服务器就会返回此响应。 411 服务器不接受不含有效内容长度标头字段的请求。 412 服务器未满足请求者在请求中设置的其中一个前提条件。 413 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 414 请求的 URI(通常为网址)过长,服务器无法处理。 415 请求的格式不受请求页面的支持。 416 如果页面无法提供请求的范围,则服务器会返回此状态代码。 417 服务器未满足”期望”请求标头字段的要求。 5开头状态码并不常见,但是我们应该知道 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。 503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
在学习网页设计的时候都应该知道状态码,但我们常见的状态码都是200,404,下面介绍其他的状态值
最近真的太忙了,从早上干到晚上。总结一下最近的状态,一个字:忙,很忙,太忙了。既要改bug,又要调试环境,还要发包!中间各种坑,这里录一下我的经历。
1.状态码返回200--表明服务器正常响应了客户端的请求; 2.通过firebug和IE的httpWatcher可以看出服务器端返回了正常的数据,并且是符合业务逻辑的数据。 但是,程序就是不进入到回调函数success: function(data){****}而是进入到error: function(data){***} 记得上次是因为存在跨域访问的问题导致。这次查看不存在跨域的问题。此时就很是不解。 事情的来源是这样的: 后台的配置管理模块中有一块是关于国际化的配置,增加国际化描述等等,查询国际化描述。 问题的来源是在输入key='a' 查询前十条数据时发现可以正常的展现数据,但是当我输入key值为z时,并且再查询前20条数据是发现数据不能展现,但是server返回了数据库中的数 据。这时第一反应是事不时数据返回的有问题,粗略的检查了返回的数据发现和第一次查询没有什么明显的区别。但是只查询第十四条数据时发现,显示不出来。这 时候就开始怀疑了数据问题,进而到数据库中查找第十四条数据没有发现什么特别的地方。 这时开始怀疑,难道是JS程序有处理数据兼容性有问题,觉得甚是不可思议。整了大约半小时,越来越觉得不大可能。就放弃了这种想法。 有转向,重新审视数据。 但是发现数据从中间换行了,没太在意。 在纠结了一会儿后问一同事,指出数据可能多了一个"回车键",在其指点下到数据库表中再次查看该条数据发现有一个字段的值多了一个"回车键"。删除后,一切恢复正常。 思考第一次和第二次碰到的问题,我初步认识到: 1. 返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,平且不然就会执行 error 里的程序块儿。 (1) 同时需要特别的注意返回的JSON数据是否是严格的JSON格式. (2) 也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。 很隐蔽的可能是数据某一个字段中在开始或末尾含有特殊字符,以"回车键"、"Tab键"等 这类隐蔽错误的规避措施就是好的编程习惯: a. 对于在页面填写入库的数据最好强制性的做,去空操作<利用客户端最好>。 b. 特殊的业务需注意特殊字符。 这样还不够,因为在开发过程中测试或开发人员自己在数据库中手动添加数据,可能会多加了空格等,导致程序调试,测试带来了麻烦。 这时就需要考虑在后台代码对获取的数据做处理。 2. 原因是ajax请求跨域了,解决方法是在两个文件里都添加一段 js: [/b]document.domain,或者采用Jsonp的方式,如我的前一篇blog中提到的。 还有一点对JQuery 中Ajax的一点其它的认识: 客户端发起请求,得到服务器端的相应是200,<正确拿到服务器响应的数据>没有问题.此时在判断进入success 对应的回调函数还是进入到error对应的回调函数之前,可能会校验一些东西: 1. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****} 2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}
常见的有 crash、ANR(应用无响应、卡死),一般由设备碎片化、网络波动大、内存泄漏、代码编写错误所引起。
接触spring boot有一段时间了,但是一直未打包部署过spring boot项目,因为其内置tomcat,所以打包部署方式有所不同。还有ngrok,是一个类似于花生壳的内网穿透神器,本文也将介绍它的用法。
典型的应用场景是:有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N的服务。
其中提到nginx默认不会为客户端转发Upgrade、Connection标头[3], 因为为了让被代理的后端服务器知道客户端要升级协议,故要在nginx上显式转发标头:
MQTT 是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议 ----------------------百度词条解释
锁定所有表(防止数据库状态值变化,锁定后,这时候只能读,不能写,写请求会在解锁后执行)
注意:同一邮箱短时间内发送带敏感信息的邮件,非常容易发送失败!建议换小公司邮箱或者邮件内容不要有敏感内容(包括:含有网站、中奖、激活、银行卡号等等)。
当两个设备都操作登录时,后操作的设备将具备登录权限,而之前登录的设备失去登录权限。
1,跟进火币网登录不了的bug,基本定位到是一个xhr send请求没返回正确数据导致。但为啥没返回正确,还不清楚。怀疑是发送的字段和服务器需要的有偏差。因为手动改commons.a3a4d0775ffa59f067d1.js里的HB-PRO-TOKEN字段,是会提示token不正确的,而不是没改前的错误提示什么系统内部错误。正在抓chrome的包一个个字段的对比。另外发现chrome会发送OPTIONS请求,不知道有没关系
昨天发了一篇 Github 部署 | CDN 加速网页,速度嗖嗖的快!,之后觉得应该可以结束这一系列了。然而,评论里有人说我的网页访问不了:
首先,先把查询请求发送给根域名服务器,如果根域名服务器知道对应域名的IP,会直接返回给客户端,
上一篇文章针对不同的状态码做了一个整理,还说到要专门针对304做一个详解,于是与,今晚又来学习了。
Cookie概述 HTTP是一种无状态的请求/响应协议,用户通过浏览器访问Web站点后,Web服务端没有可用信息来判断是哪个用户发起的请求,更加无法知道下次访问的还是不是上次访问的用户,无法识别当前用户。最初,为了解决这个问题出现了很多解决方案,例如客户端IP地址跟踪、用户登录认证、URL中嵌入识别信息等,但都没有很好的解决根本问题。然而,Cookie的设计实现很好的解决了这个问题。用户通过浏览器访问Web站点后,服务端会将一些Key/Value组合的键值对通过Set-Cookie或Set-Cookie2返
开放端口:利用fofa查件搜集一波,nmap搜集到135、139、445是filtered状态
前言 在PC浏览器的地址栏输入一串URL,然后按Enter键这个页面渲染出来,这个过程中都发生了什么事?这个是很多面试官喜欢问的一个问题 如果测试只是停留在表面上点点点,不知道背后的逻辑,是无法发现隐
说真的,当自己还很小白的时候,明明修改了JS的内容了,但是就是没有加载成功,那时候感觉好神奇,好没道理。后来知道了这是因为缓存的原因。
最近几天一直很头疼,因为鸟云服务器免费使用的活动,所以自己注册了一个帐号,领取了主机一枚,接下来干什么呢?当然是折腾了。之前用了linux的wdcp面板的操作,感觉还是挺顺手的,之前写过如何在阿里云、腾讯云、小鸟云安装wdcp图文教程,那么这次当然就不再用linux了,申请的鸟云配置:CPU : 4核,内存 : 4G,带宽 : 5M,还是不错的。
本文主要想通过动手实际分析一下是如何通过DNS服务器来解析域名获取对应IP地址的,毕竟,纸上得来终觉浅,绝知此事要躬行。
SSRF漏洞(服务器端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统,正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统,利用漏洞可以发起网络请求来攻击内网服务
浏览器缓存,又称 HTTP 缓存,指的是:当我们浏览网站的时候,器存储会在本地存储一个副本,以便下次访问同个网址的时候可以不再连接服务器,直接使用本地的缓存。服务器端程序可以通过 HTTP Cache Headers 来控制缓存行为,减轻服务器的负担,缩短了响应时间,显著得提高网站的性能。
平时我们打开网页,比如购物网站某宝。都是点一下列表商品,跳转一下网页就到了商品详情。
App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉。
我真没想到这篇文章竟然写了将近一个月,一方面我在写这篇文章的时候阳了,所以将近有两周没干活,另外一方面,我发现在写基于Node的HTTP的demo的时候,我不会Node,所以我又要一边学学Node,一边百度,一边看HTTP,最后百度的东西百分之九十不能用,所以某些点就卡的我特别难受。
接口规定了必须携带id参数或者其它参数,才能正确的返回数据。你加上参数id=123。
首先,第二题直接放弃了,算法对我来说很掉头发的,果断放弃了。毕竟现在不是答题时间了,下面的分析如有错误还请各位留言扶正,谢谢!
事务是数据库的一个重要功能。所谓事务,就是指对数据进行读写的一系列操作。Redis通过MULTI、EXEC、WATCH等命令来实现事务功能:
1、torrent文件的原理:如果这个问题是指torrent文件本身,那么,当你对一个文件(或者文件夹)制作成.torrent文件,实际上生成的.torrent文件里面主要包括了这些信息:
事情是这样,在5月24日的时候我们收到一条通知,说我们服务器存在违规的文件。我们内部马上去查询及按通知内提供的url进行了确认。得到两点结果:1)我们未发现腾讯说的url包含病毒或者违规(因为接口根本不存在内容,返回的是json的404错误)。2)通过url参数,我们对服务器的数据库 已经相关函数进行了核查,未发现有问题的文件或者数据库文件。
上篇文章中,已经介绍了Redis是什么,以及如何使用docker在服务器上安装redis,接下来看一下字符串在redis中是如何进行相关操作的。
1.我们日常生活中接触最多的,百度、360、Google搜索等等此类的搜索引擎就是利用爬虫程序来实现的,比如Googlebot是目前最为知名和广泛使用的爬虫之一、百度的爬虫程序Baiduspider。它们是通过自动访问和索引互联网上的网页内容,以便用户可以通过搜索关键词从海量的信息中找到想要的信息。
DNS 解析过程涉及将主机名(例如 www.example.com)转换为计算机友好的 IP 地址(例如 192.168.1.1)。Internet 上的每个设备都被分配了一个 IP 地址,必须有该地址才能找到相应的 Internet 设备 - 就像使用街道地址来查找特定住所一样。
开放端口:利用fofa插件搜集一波,nmap搜集到135、139、445是filtered状态
领取专属 10元无门槛券
手把手带您无忧上云