![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机原理
猴哥_IT小菜鸟
三分天注定七分靠打拼 爱拼才会赢
展开
-
TCP三次握手/四次挥手的作用
1.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢? 这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一转载 2017-02-16 11:27:33 · 1356 阅读 · 0 评论 -
Web安全之XSS
XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的. 比如获取用户的Cookie,导航到恶意网站,携带木马等。作为测试人员,需要了解XSS的原理,攻击场景,如何修复。 才能有效的防止XSS的发生。 阅读目录XSS转载 2017-02-16 11:15:38 · 442 阅读 · 0 评论 -
Web安全之CSRF
一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么? 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买转载 2017-02-16 11:14:44 · 259 阅读 · 0 评论 -
HTTP1.0与HTTP1.1的区别
下面主要从几个不同的方面介绍HTTP/1.0与HTTP/1.1之间的差别,当然,更多的内容是放在解释这种差异背后的机制上。1 可扩展性可扩展性的一个重要原则:如果HTTP的某个实现接收到了自身未定义的头域,将自动忽略它。Ø 在消息中增加版本号,用于兼容性判断。注意,版本号只能用来判断逐段(hop-by-hop)的兼容性,而无法判断端到端(end-to-end)的兼容性。例如,一台HTTP/转载 2017-02-16 11:13:55 · 154 阅读 · 0 评论 -
ASCII码表
ASCII码大致可以分作三部分組成。第一部分:ASCII非打印控制字符表ASCII表上的数字0–31分配给了控制字符,用于控制像打印机等一些外围设备。例如,12代表换页/新页功能。此命令指示打印机跳到下一页的开头。(参详ASCII码表中0-31)第二部分:ASCII打印字符数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。数字127代表 DELETE 命令。(参转载 2017-02-16 11:13:26 · 362 阅读 · 0 评论 -
TIME_WAIT和CLOSE_WAIT状态区别
在服务器的日常维护过程中,会经常用到下面的命令:[plain] view plain copy print?netstat -n | awk ’/^tcp/ {++S[NF]} END {for(a in S) print a, S[a]}' </span></span></li></ol><di转载 2017-02-16 11:13:03 · 361 阅读 · 0 评论 -
内网、外网IP地址
公网、内网是两种Internet的接入方式 内网接入方式:上网的计算机得到的IP地址是Inetnet上的保留地址,保留地址有如下3种形式: 10.x.x.x 172.16.x.x至172.31.x.x 192.168.x.x 内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。内网的计算机可向Interne转载 2017-02-16 11:12:24 · 458 阅读 · 0 评论 -
正向代理/反向代理/透明代理
1、正向代理(forward)是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。2、反向代理(reverse proxy)正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置转载 2017-02-16 10:50:06 · 203 阅读 · 0 评论 -
TCP协议疑难杂症全景解析
说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,学习网络更转载 2017-02-16 10:49:28 · 329 阅读 · 0 评论 -
协程与例程
协程与例程 <div class="article_description">协程(coroutine)技术是一种程序控制机制,早在上世纪60年代就已提出,用它可以很方便地实现协作式多任务。 协程是一种程序组件,是由子例程的概念泛化而来的,子例程只有一个入口点且只返回一次,而协程允许多个入口点,可以在指定位置挂起和恢复执行。被广为引用的转载 2017-02-16 10:48:49 · 379 阅读 · 0 评论 -
关于线程Thread和协程Coroutine
线程与协同程序的主要区别在于,一个具有多线程的程序可以同时运行几个线程,而协同程序却需要彼此协作地运行。就是说,一个具有多个协同程序的程序在任何时刻只能运行一个协同程序,并且正在运行的协同程序只会在其显示地挂起时,它的执行才会暂停。线程和协程的异同协程(Coroutine)类似于线程(Thread)的地方是:每个协程都有有自己的堆栈,自己的局部变量。线程和协程的主要区别在于:线程可以并发运行转载 2017-02-16 10:47:16 · 395 阅读 · 0 评论 -
HTTP协议 (七) Cookie
Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的【细说Cookie】, 让我学到了很多东西。Fish的这篇文章写得太经典了。 所以我这篇文章就没有太多内容了。 最近我打算写一个系列的HTTP文章,我站在HTTP协议的角度, 说说我对Cookie的理解。 阅读目录Cookie是什么,有什么用,为什么要用到CookieCookie的分类Cookie存在哪里使用和禁用Co转载 2017-02-16 11:16:14 · 208 阅读 · 0 评论 -
HTTP协议 (六) 状态码详解
HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。 本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了。HTTP状态码的学习资料到处都有,但是都是理论上讲解。 本文介绍HTTP协转载 2017-02-16 11:16:53 · 197 阅读 · 0 评论 -
TCP连接状态图解析
TCP协议连接建立时3次握手的过程: TCP协议连接断开时4次握手的过程:转载 2017-02-16 11:27:10 · 660 阅读 · 0 评论 -
【TCP连接状态详解】
下面是每一个TCP连接在任意时刻可能处于的状态,在Linux下可以在netstat命令的最后一列(State列)里看到。各个状态的含义如下:CLOSED :初始状态,表示TCP连接是“关闭着的”或“未打开的”。 LISTEN :表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。 SYN_RCVD :表示接收到了SYN报文。在正常情况下,这个状态是服务器端的SOCKET在建转载 2017-02-16 11:26:28 · 238 阅读 · 0 评论 -
Last-Modified,Etag,Expire区别
Last-Modified 是什么Last-Modified 是 HttpHeader 中的资源的最后修改时间,如果带有 Last-Modified ,下一次发送 Http 请求时,将会发生带 If-modified-since 的 HttpHeader 。如果没有过期,将会收到 304 的响应,从缓存中读取。Etag 是什么Etag 是 HttpHeader 中代表资源的标签,在服务器端生成转载 2017-02-16 11:26:01 · 321 阅读 · 0 评论 -
浏览器缓存相关的HTTP头介绍:Expires,Cache-Control,Last-Modified,ETag
缓存对于Web开发有重要作用,尤其是大负荷Web系统开发中。缓存分很多种:服务器缓存,第三方缓存,浏览器缓存等。其中浏览器缓存是代价最小的,因为浏览器缓存依赖的是客户 端,而几乎不耗费服务器端的资源。让浏览器做缓存需要给浏览器发送指定的Http头,告诉浏览器缓存多长时间,或者坚决不要缓存。1.Expires(过期时间)HTTP头信息Expires(过期时间) 属性是HTTP控制缓存的基本手段转载 2017-02-16 11:25:40 · 1307 阅读 · 0 评论 -
HTTP 状态码
在网站建设的实际应用中,容易出现很多小小的失误,就像MySQL当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规HTTP状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于404状态页面设置不正常,导致了Google管理员工具无法验证的情况,当然,影响的不仅仅是这一方面,影响的更是网站的整体浏览效果。因此,比较清楚详细的了解HTTP状态码的具体含义,对于一个网站站长来说,转载 2017-02-16 11:25:14 · 171 阅读 · 0 评论 -
HTTP协议 (一) HTTP协议详解
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HTT转载 2017-02-16 11:24:51 · 390 阅读 · 0 评论 -
HTTP协议 (二) 基本认证
http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢? 阅读目录什么是HTTP基本认证HTTP基本认证的过程HTTP基本认证的优点每次都要进行认证HTTP基本认证和HTTPS一起使用就很安全HTTP OAuth认证其他认证客户端的使用 什么是HTTP基本认证桌面应用转载 2017-02-16 11:22:31 · 202 阅读 · 0 评论 -
HTTP协议 (三) 压缩
之前写过一个篇 【HTTP协议详解】 ,这次继续介绍HTTP协议中的压缩。本文会使用Fiddler来查看HTTP request和Response, 如果不熟悉这个工具,可以先参考[Fiddler教程]HTTP压缩是指: Web服务器和浏览器之间压缩传输的”文本内容“的方法。 HTTP采用通用的压缩算法,比如gzip来压缩HTML,JavaScript, CSS文件。 能大大减少网络传输的数据转载 2017-02-16 11:20:49 · 186 阅读 · 0 评论 -
HTTP协议 (四) 缓存
之前写过一个篇 【HTTP协议详解】 ,这次继续介绍HTTP协议中的缓存机制。HTTP协议提供了非常强大的缓存机制, 了解这些缓存机制,对提高网站的性能非常有帮助。 本文介绍浏览器和Web服务器之间如何处理”浏览器缓存“,以及控制缓存的http header.本文会使用Fiddler来查看HTTP request和Response, 如果不熟悉这工具,可以先参考[Fiddler教程] 。在看本文转载 2017-02-16 11:18:46 · 204 阅读 · 0 评论 -
HTTP协议 (五) 代理
之前写过一个篇 【HTTP协议详解】 ,这次介绍代理服务器, 代理服务器是HTTP协议中一个重要的组件, 发挥着重要的作用。 本文介绍一些HTTP代理服务器的概念和工作原理 阅读目录什么是代理服务器Fiddler就是个典型的代理代理作用一:翻墙代理作用二:匿名访问代理作用三:通过代理上网代理作用四:通过代理缓存,加快上网速度代理作用五:儿童过滤器IE代理设置:手动设置代理IE代理设置:使用自动转载 2017-02-16 11:17:21 · 134 阅读 · 0 评论 -
一个数据包的互联网漫游记
尽管大多数最终用户都不关心Internet是如何工作的,但是我相信你们当中的仍然会有一些人对Internet运转的基本原理非常感兴趣。在这篇文章中,我们会通过阐释一个数据包从源到目的地的征程,来试着拨开互联网的第一层神秘面纱。由此出发,我们会尽量让本文的内容保持简单基础。在更进一步之前,让我们先快速简要地理解一下DHCP和DNS的概念。DHCP你有没有想过你的计算机是如何获取IP地址的?嗯……首先你转载 2017-02-16 10:46:47 · 158 阅读 · 0 评论 -
HTTP代理原理以及HTTP隧道技术
HTTP代理原理 通过HTTP协议与代理服务器建立连接,协议信令中包含要连接到的远程主机的IP和端口号,如果有需要身份验证的话还需要加上授权信息,服务器收到信令后首先进行身份验证,通过后便与远程主机建立连接,连接成功之后会返回给客户端200,表示验证通过,就这么简单,下面是具体的信令格式:CONNECT 124.xxx.xxx.xx:443 HTTP/1.1 //建立http隧道要443端转载 2017-02-16 10:46:20 · 1802 阅读 · 0 评论 -
图解HTTPS
我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。 HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。 1转载 2017-02-17 16:54:35 · 217 阅读 · 0 评论 -
HTTP协议之基本认证
http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢? 阅读目录什么是HTTP基本认证HTTP基本认证的过程HTTP基本认证的优点每次都要进行认证HTTP基本认证和HTTPS一起使用就很安全HTTP OAuth认证其他认证客户端的使用 什么是HTTP基本认证 桌面转载 2017-02-17 16:49:26 · 211 阅读 · 0 评论 -
互联网协议入门
我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗? 互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理转载 2017-02-17 16:49:05 · 221 阅读 · 0 评论 -
CDN(内容分发网络)技术原理
1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰。解决方案就是在网络传输上利用缓存技术使得Web服务数据流能就近访问,是优化网络数据传输非常有效的技术,从而获得高速的体验和品质保证。 网络缓存技术,其目转载 2017-02-17 16:48:27 · 606 阅读 · 0 评论 -
从谷歌宕机事件认识互联网工作原理
译者注:本文中提到 CloudFlare 是一家总部位于美国旧金山的内容分发网络(CDN)服务公司,由 Project Honey Pot 项目的三位前开发人员成立于 2009 年。2011 年 10 月被华尔街日报评为最具创新精神的网络科技公司。 今天,谷歌的服务经历了短暂的宕机事件,持续大概 27 分钟,对部分地区的互联网用户造成了影响。此次事件的原因深究起来需要进入互联网络那深邃的、黑暗的转载 2017-02-17 10:48:45 · 1099 阅读 · 0 评论 -
正则表达式语法介绍
字符集合 说明 ^ 匹配输入字符串的开始位置。要匹配 “^” 字符本身,请使用 “\^” 匹配输入字符串的结尾位置。要匹配 " &nb转载 2017-02-16 11:42:35 · 231 阅读 · 0 评论 -
深入浅出异步I/O模型
从上篇文章的介绍我们知道Linux内核根据TCP/IP网络模型,给我们隐藏了传输层以下的网络传输细节,我们的网络应用程序只需要针对socket编程即可。这篇我们立足网络数据包的I/O。谈谈linux的一些I/O知识,以及Java的NIO. 1. 基础知识 我们知道Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件转载 2017-02-16 11:42:02 · 216 阅读 · 0 评论 -
3个著名加密算法(MD5、RSA、DES)的解析
1.加密算法之MD5算法MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。 MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符转载 2017-02-16 11:41:39 · 470 阅读 · 0 评论 -
TCP三次握手/四次挥手详解
TCP连接三次握手:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态; 第三次握手转载 2017-02-16 11:41:10 · 153 阅读 · 0 评论 -
TPS和QPS的区别
一、TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS)TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的转载 2017-02-16 11:39:40 · 457 阅读 · 0 评论 -
HTTPS 能否避免流量劫持?
HTTPS 能否避免流量劫持?近日,看了一篇关于流量劫持的文章《安全科普:流量劫持能有多大危害?》,作者EtherDream以图文并茂的形式详细讲解了流量劫持及相关知识。“在如今这个讲究跨平台、体验好,并有云端支持的年代,WebApp 越来越火热。各种应用纷纷移植成网页版,一些甚至替代了客户端。同时,也造就了流量劫持前所未有的势头。”小编总结,这里提到的流量劫持危害,大多跟Http明文传输协议的转载 2017-02-16 10:29:58 · 427 阅读 · 0 评论 -
三种基本的存储引擎比较
1、Hash存储引擎代表数据库:Redis、memcache等通常也常见于其他存储引擎的查找速度优化上。 Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也带来了很多限制和转载 2017-02-16 10:32:31 · 381 阅读 · 0 评论 -
HTTP GET/CONNECT代理区别
HTTP GET/CONNECT代理区别举例:HTTP Proxy Server : 127.0.0.1 8080Access Web Site: www.example.com/index.php1) 无代理:GET /index.PHP HTTP/1.1HOST: www.example.comUser-Agent: Mozilla/5.0 (Windows; U; Windows转载 2017-02-16 10:45:50 · 1264 阅读 · 0 评论 -
HTTP代理协议 HTTP/1.1的CONNECT方法
我们平时使用HTTP协议无非就是GET、POST这些方法,但是HTTP的内容远不止那些。今天就来说说HTTP代理使用的CONNECT。这个不是在网页开发上用的,如果没兴趣就跳过吧。 APACHE只是作为网页的服务器被使用的,不会支持这个方法。如果要使用它必须在服务器上安装相应的软件。这样的软件很多,百度一下HTTP代理服务器就可以找到一大把。 CONNECT这个方法的作用就是把服务器作为跳板转载 2017-02-16 10:39:31 · 4410 阅读 · 0 评论 -
TCP网络协议以及其思想的应用
大部分程序员都听说过 TCP/IP 网络协议, 或者都写过 TCP socket 网络的程序, 甚至还学过 TCP 原理, 少部分看过 TCP 协议的某一个实现版本. 不过, 真正掌握 TCP 原理及思想的人, 我觉得不多. 只有理解了 TCP 原理及实现, 并且把它背后的思想和技术活学活用到其它的领域, 那才算是真正掌握了 TCP. TCP 协议的目的, 是在不可靠传输的 IP 层之上建立一套转载 2017-02-16 10:38:40 · 201 阅读 · 0 评论