HTTP杂谈

HTTP 协议

HTTP请求和响应步骤

HTTP杂谈_第1张图片

以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。

TCP/IP协议

TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。

HTTP协议就是基于TCP/IP协议模型来传输信息的。
HTTP杂谈_第2张图片

(1). 链路层

也称作数据链路层或网络接口层(在第一个图中为网络接口层和硬件层),通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。

(2). 网络层

也称作互联网层(在第一个图中为网际层),处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议(网际协议),ICMP协议(Internet互联网控制报文协议),以及IGMP协议(Internet组管理协议)。

IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。

ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。

IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。

(3). 传输层

主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。

TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。为了提供可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。

UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。UDP协议任何必需的可靠性必须由应用层来提供。

(4). 应用层

应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。包括 HTTP,FTP(File Transfer Protocol,文件传输协议),DNS(Domain Name System,域名系统)服务。

HTTP杂谈_第3张图片

当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图所示。

HTTP杂谈_第4张图片

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing)。协议是通过目的端口号、源I P地址和源端口号进行解包的。

通过以上步骤我们从TCP/IP模型的角度来理解了一次HTTP请求与响应的过程。

下面这张图更清楚明白:
HTTP杂谈_第5张图片

下面具体来看如何进行一步步操作的。

Http是什么?

通俗来讲,他就是计算机通过网络进行通信的规则,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)之间进行任何一种通信都必须按照Http协议进行,否则无法连接。

1、四个基于

请求与响应: 客户端发送请求,服务器端响应数据

无状态的: 协议对于事务处理没有记忆能力,客户端第一次与服务器建立连接发送请求时需要进行一系列的安全认证匹配等,因此增加页面等待时间,当客户端向服务器端发送请求,服务器端响应完毕后,两者断开连接,也不保存连接状态,一刀两断!恩断义绝!从此路人!下一次客户端向同样的服务器发送请求时,由于他们之前已经遗忘了彼此,所以需要重新建立连接。HTTP/1.1 虽然是无状态协议,但为了实现期望的保持状态功能,于 是引入了 Cookie 技术。有了 Cookie 再用 HTTP 协议通信,就可以管 理状态了。有关 Cookie 的详细内容稍后讲解。

应用层: Http是属于应用层的协议,配合TCP/IP使用。

TCP/IP: Http使用TCP作为它的支撑运输协议。HTTP客户机发起一个与服务器的TCP连接,一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP。

针对无状态的一些解决策略:

有时需要对用户之前的HTTP通信状态进行保存,比如执行一次登陆操作,在30分钟内所有的请求都不需要再次登陆。于是引入了Cookie技术。

HTTP/1.1想出了持久连接(HTTP keep-alive)方法。其特点是,只要任意一端没有明确提出断开连接,则保持TCP连接状态,在请求首部字段中的Connection: keep-alive即为表明使用了持久连接。等等还有很多……

2、持久连接

持久连接的特点是,只要任意一端 没有明确提出断开连接,则保持 TCP 连接状态。在 HTTP/1.1 中,所有的连接认都是持久连接,但在 HTTP/1.0 并未标准化。
持久连接使得多数请求以管线化(pipelinin)方式发送成为可能。从发送请求后需待并到响应,才能发送下一请求。管线化技出现后,不用等待响应亦可直接发送下一个请求。这样就能够做到同时并行发送多个请求,而不需要用途一个接一个地等待响应。

3、 Cookie技术

Cookie 根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 部段信,通知客户端存 Cookie。当下次客户端再往该服送请求时,客户端自动在请求报文中加入 Cookie 值后发送出去,
服务器端发现客户端发送过来的 Cookie 后,去检查究竟是从哪客户端发的请求,然后对比服器上的记录,最后得到之前的状态信息。

HTTP/1.0 和 HTTP/1.1 支持的主要方法

PUT:传输文件
PUT 方法用来传输文件。就像 FTP 协议的文件上传一样,要求在请 求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。 但是,鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以 上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。若 配合 Web 应用程序的验证机制,或架构设计采用 REST(REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法。

使用PUT 方法的请求、响应例子

说明 说明
请求 PUT/example.html HTTP/1.1 Host:www.hackr.jp Content_Type:text/html Content-Length: 1560
响应 1 响应返回状态码 204 No Content(比如 :该 html 已存在于服务器上)

响应1的意思其实是请求行成功了,但无返回

**HEAD:获得报文首部 **
HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。

使用 HEAD 方法的请求·响应的例子

说明 说明
请求 HEAD /index.html HTTP/1.1 Host: www.hackr.jp
响应 返回index.html有关的响应首部

**DELETE:删除文件 **
DELETE 方法用来删除文件,是与 PUT 相反的方法。DELETE 方法按 请求 URI 删除指定的资源。 但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机 制,所以一般的 Web 网站也不使用 DELETE 方法。当配合 Web 应用 程序的验证机制,或遵守 REST 标准时还是有可能会开放使用的。

使用 DELETE 方法的请求·响应的例子

说明 说明
请求 DELETE /example.html HTTP/1.1 Host: www.hackr.jp
响应 响应返回状态码 204 No Content(比如 :该 html 已从该服务器上删除)

TRACE:追踪路径

TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方 法。发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个服 务器端就将该数字减 1,当数值刚好减到 0 时,就停止继续传输,最 后接收到请求的服务器端则返回状态码 200 OK 的响应。 客户端通过 TRACE 方法可以查询发送出去的请求是怎样被加工修改 / 篡改的。这是因为,请求想要连接到源目标服务器可能会通过代理 中转,TRACE 方法就是用来确认连接过程中发生的一系列操作。 但是,TRACE 方法本来就不怎么常用,再加上它容易引发 XST(Cross-Site Tracing,跨站追踪)攻击,通常就更不会用到了。

使用 TRACE 方法的请求·响应的例子

说明 说明
请求 TRACE / HTTP/1.1 Host: hackr.jp Max-Forwards: 2 HTTP/1.1 200 OK Content-Type: message/http 39
响应 Content-Length: 1024 TRACE / HTTP/1.1 Host: hackr.jp Max-Forwards: 2(返回响应包含请求内容)

**CONNECT:要求用隧道协议连接代理 **
CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协 议进行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接 层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容 加 密后经网络隧道传输。
CONNECT 方法的格式如下所示:
CONNECT 代理服务器名:端口号 HTTP版本

使用 CONNECT 方法的请求·响应的例子

说明 说明
请求 CONNECT proxy.hackr.jp:8080 HTTP/1.1 Host: proxy.hackr.jp
响应 HTTP/1.1 200 OK(之后进入网络隧道)

HTTP杂谈_第6张图片

HTTP请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。

HTTP杂谈_第7张图片
在请求首部和响应首部后或许还有 其他非标准首部字段(X-Frame-Options、DNT、P3P)更多内容见《图解HTTP》

1.请求行

请求行分为三个部分:请求方法、请求地址和协议版本

请求方法

HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。

最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。

请求地址

URL:统一资源定位符,是一种自愿位置的抽象唯一识别方法。

组成:<协议>://<主机>:<端口>/<路径>

端口和路径有时可以省略(HTTP默认端口号是80)

如下例:

HTTP杂谈_第8张图片

有时会带参数,GET请求

协议版本

协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1

2.请求首部

HTTP/1.1 首部分为四大类
1、通用首部
HTTP杂谈_第9张图片

2、请求首部
HTTP杂谈_第10张图片

实体首部
HTTP杂谈_第11张图片

响应首部
HTTP杂谈_第12张图片

HTTP 首部字段重复了会如何:当 HTTP 报文首部中出现了两或两以上具有相同首部段名怎么样?这种情况在规范内尚未明确,根据浏览器内部处理逻的不同,结果可能并不一致。有些浏览器优先处理第一次出现的首部段,而有些则优先处理最后出现的首部段。

3.请求数据

可选部分,比如GET请求就没有请求数据。

下面是一个POST方法的请求报文:

POST  /index.php HTTP/1.1    请求行
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2  请求头
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer:http://localhost/
Content-Length:25
Content-Type:application/x-www-form-urlencoded
  空行
username=aa&password=1234  请求数据

HTTP响应报文

HTTP杂谈_第13张图片

HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。

1.状态行

由3部分组成,分别为:协议版本,状态码,状态码描述。

其中协议版本与请求报文一致,状态码描述是对状态码的简单描述,所以这里就只介绍状态码。

状态码

状态代码为3位数字。

  • 1xx:指示信息——表示请求已接收,继续处理。
  • 2xx:成功——表示请求已被成功接收、理解、接受。
  • 3xx:重定向——需要进行附加操作以完成请求。
  • 4xx:客户端错误——服务器无法处理请求。
  • 5xx:服务器端错误——服务器处理请求出错。

下面列举几个常见的:

HTTP杂谈_第14张图片
更多内容见《图解HTTP》

2.响应首部

HTTP杂谈_第15张图片

3.响应数据

用于存放需要返回给客户端的数据信息。

下面是一个响应报文的实例:

HTTP/1.1 200 OK  状态行
Date: Sun, 17 Mar 2013 08:12:54 GMT  响应头部
Server: Apache/2.2.8 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4393
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
  空行

  响应数据 HTTP响应示例 Hello HTTP! </blockquote> <p>关于请求头部和响应头部的知识点很多,这里只是简单介绍。</p> <p>通过以上步骤,数据已经传递完毕,HTTP/1.1会维持持久连接,但持续一段时间总会有关闭连接的时候,这时候据需要断开TCP连接。</p> <h2>HTTPS 原理</h2> <h3>HTTP 缺点</h3> <ul> <li>通信使用明文(不加密),内容可能被窃听。</li> <li>不验证通信方的份,因此有可能遭遇伪装(DOS攻击)。</li> <li>无法证明报文的完整性,所以有可能已遭篡改(中间人攻击)。</li> </ul> <h3>HTTP+加密+认证+完整性保护=HTTPS</h3> <p>0</p> <h4>1、加密</h4> <p><strong>1、共享密钥加密</strong></p> <p>加密和解密同用一个密钥的方式称为共享密钥加密(Common keycrypto system),也被叫做对称密钥加密。以共享密钥方式加密时必须将密钥也发给对方。可究竟怎样才能安全地转交?在互联网上转发密钥时,如果通信被监听那么密钥就可能会落入攻击者之手,同时也就失去了加密的意义。另外还得设法安全地保管接收到的密钥。<br> <strong>2、公开密钥加密</strong></p> <ul> <li>公开密钥加密使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key)。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。用公开密钥密方式,发送密文的一方用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用解密的私有密钥,不必担心密钥被攻击者窃听而盗走。另外,要想根据密文和公开密钥,恢复到息原文是常困难,因为解密过程就是在对离散对数进行求值,这并非轻而易举就能做到。退一步讲,如果能对一非常大的整数做到快速地因式分解,那么密码破解还是存在希望的。但就目前的技术看不太现实的。<br> <strong>HTTPS采用混合加密机制:在交换密钥环节用公开密钥加密方式,之后的建立通信文阶段则用共享密钥加密方式</strong></li> <li>公开密钥加密缺点及改正<br> 缺点:遗憾的是,公开密钥加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了。<br> 改正:使用数字证书认证机构和七相关机关颁发的公开密钥证书;步骤如下:<br> <a href="http://img.e-com-net.com/image/info8/beca144375c149ac9eeb4c2f4648b3de.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/beca144375c149ac9eeb4c2f4648b3de.jpg" alt="HTTP杂谈_第16张图片" width="650" height="485" style="border:1px solid black;"></a></li> </ul> <h4>2、 认证</h4> <p><strong>SSL客户端认证步骤:</strong><br> 为达到 SSL客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书。<br> 步骤 1: 接收到需要认证资源的请求,服务器会发送 CertificateRequest 报文,要求客户端提供客户端证书。<br> 步骤 2: 用户选择将发送的客户端证书后,客户端会把客户端证书信息以 Client Certificate 报文方式发送给服务器。<br> 步骤3:服务器验证客户端证书通过后方可领取证书内客户端的公开密钥,然后开始HTTPS加密通信。</p> <h4>3、HTTPS的安全通信机制</h4> <p><a href="http://img.e-com-net.com/image/info8/2c3d967741db4cc39f302cd49db57242.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2c3d967741db4cc39f302cd49db57242.jpg" alt="HTTP杂谈_第17张图片" width="649" height="433" style="border:1px solid black;"></a></p> <h2>消除HTTP瓶颈的SPDY</h2> <h3>1、HTTP的瓶颈</h3> <p>有些网站有实时更新内容的需求,HTTP却无法妥善地处理好这项任务。因为以下的HTTP标准会成为瓶颈。<br> 1、一条连接上只可发送一个请求<br> 2、 请求只能从客户端开始。客户端不可以接收除响应以外的指令<br> 3、请求 / 响应首部未经压缩就发送。首部信息越多延迟越大。<br> 4、 发送冗长的首部。每次互相发送相同的首部造成的浪费较多<br> 5、可任意选择数据压缩格式。非强制压缩发送。</p> <h3>2、SPDY的目标</h3> <p>陆续出现的 Ajax 和 Comet 等提高易用性的技术(详情见图解HTTP),一定程度上使 HTTP得到了改善,但 HTTP 协议本身的限制也令人有些束手无策。为了进行根本性的改善,需要有一些协议层面上的改动。处于持续开发状态中的 SPDY 协议,正是为了在协议级别消除 HTTP所遭遇的瓶颈。</p> <h3>3、SPDY 的设计与功能</h3> <h4>1、设计:</h4> <p>SPDY 没有完全改写 HTTP 协议,而是在 TCP/IP 的应用层与运输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY 规定通信中使用 SSL。SPDY 以会话层的形式加入,控制对数据的流动,但还是采用 HTTP建立通信连接。因此,可照常使用 HTTP 的 GET 和 POST 等方 法、Cookie 以及 HTTP 报文等。</p> <h4>2、使用 SPDY 后,HTTP 协议额外获得以下功能。</h4> <p><strong>多路复用流</strong>:通过单一的 TCP 连接,可以无限制处理多个 HTTP 请求。所有请求的处理都在一条 TCP 连接上完成,因此 TCP 的处理效率得到提高。<br> <strong>赋予请求优先级</strong>:SPDY 不仅可以无限制地并发处理请求,还可以给请求逐个分配优先级顺序。这样主要是为了在发送多个请求时,解决因带宽低而导致响应变慢的问题。<br> <strong>压缩 HTTP 首部</strong>:压缩 HTTP 请求和响应的首部。这样一来,通信产生的数据包数量和发送的字节数就更少了。<br> <strong>推送功能</strong>:支持服务器主动向客户端推送数据的功能。这样,服务器可直接发送数据,而不必等待客户端的请求。<br> <strong>服务器提示功能</strong>:服务器可以主动提示客户端请求所需的资源。由于在客户端发现资源之前就可以获知资源的存在,因此在资源已缓存等情况下,可以避免发送不必要的请求。</p> <h2>使浏览器进行全双工通信的WebSocket</h2> <h3>1、WebSocket协议的主要特点</h3> <p><strong>1、推送功能</strong><br> 支持由服务器向客户端推送数据的推送功能。这样,服务器可直接发送数据,而不必等待客户端的请求。</p> <p>**2、减少通信量 **<br> 只要建立起 WebSocket 连接,就希望一直保持连接状态。和 HTTP 相比,不但每次连接时的总开销减少,而且由于 WebSocket 的首部信息很小,通信量也相应减少了。</p> <h3>3、WebSocket通信步骤</h3> <p><a href="http://img.e-com-net.com/image/info8/47bdfb92c76d42afa4bd7cd6210f9bc1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/47bdfb92c76d42afa4bd7cd6210f9bc1.jpg" alt="HTTP杂谈_第18张图片" width="607" height="396" style="border:1px solid black;"></a></p> <p><strong>1、握手、请求</strong><br> 为了实现 WebSocket 通信,需要用到 HTTP 的 Upgrade 首部字段,告知服务器通信协议发生改变,以达到握手的目的。</p> <blockquote> <p>GET /chat HTTP/1.1<br> Host: server.example.com<br> Upgrade: websocket<br> Connection: Upgrade<br> Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==<br> Origin: http://example.com<br> Sec-WebSocket-Protocol: chat, superchat<br> Sec-WebSocket-Version: 13</p> </blockquote> <p>Sec-WebSocket-Key 字段内记录着握手过程中必不可少的键值。Sec-WebSocket-Protocol 字段内记录使用的子协议子协议按 WebSocket 协议标准在连接分开使用时,定义那些连接的名称。</p> <p><strong>2. 握手、响应</strong></p> <blockquote> <p>对于之前的请求,返回状态码 101 Switching Protocols 的响应。<br> HTTP/1.1 101 Switching Protocols<br> Upgrade: websocke<br> Connection: Upgrade<br> Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=<br> Sec-WebSocket-Protocol: chat</p> </blockquote> <p>Sec-WebSocket-Accept 的字段值是由握手请求中的 Sec- WebSocket-Key 的字段值生成的。 成功握手确立 WebSocket 连接之后,通信时不再使用 HTTP 的数 据帧,<strong>而采用 WebSocket 独立的数据帧</strong></p> <h3>3、WebSocket与Socket 的关系</h3> <p>Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议<br> WebSocket是应用层协议。</p> <h2>HTTP0.9、HTTP1.0、HTTP1.1与HTTP2.0区别</h2> <h3>1、HTTP0.9</h3> <p>HTTP/0.9是第一个版本的HTTP协议,已过时。它的组成极其简单,只允许客户端发送GET这一种请求,且不支持请求头。由于没有协议头,造成了HTTP/0.9协议只支持一种内容,即纯文本。不过网页仍然支持用HTML语言格式化,同时无法插入图片。</p> <p>HTTP/0.9具有典型的无状态性,每个事务独立进行处理,事务结束时就释放这个连接。由此可见,HTTP协议的无状态特点在其第一个版本0.9中已经成型。一次HTTP/0.9的传输首先要建立一个由客户端到Web服务器的TCP连接,由客户端发起一个请求,然后由Web服务器返回页面内容,然后连接会关闭。如果请求的页面不存在,也不会返回任何错误码</p> <h3>2、HTTP1.0</h3> <p>HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用。相对于HTTP/0.9增加了如下主要特性:</p> <ul> <li>请求与响应支持头域</li> <li>响应对象以一个响应状态行开始</li> <li>响应对象不只限于超文本</li> <li>开始支持客户端通过POST方法向Web服务器提交数据,支持GET、HEAD、POST方法</li> <li>支持长连接(但默认还是使用短连接),缓存机制,以及身份认证</li> </ul> <h3>3、HTTP1.1</h3> <p>HTTP协议的第三个版本是HTTP/1.1,是目前使用最广泛的协议版本。HTTP/1.1是目前主流的HTTP协议版本,相对于HTTP/1.0新增了以下内容:</p> <ol> <li>默认为长连接</li> </ol> <p>HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection:keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。</p> <ol start="2"> <li>提供了范围请求功能(宽带优化)</li> </ol> <p>HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。这是支持文件断点续传的基础。</p> <ol start="3"> <li>提供了虚拟主机的功能(HOST域)</li> </ol> <p>在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。</p> <ol start="4"> <li>多了一些缓存处理字段</li> </ol> <p>HTTP/1.1在1.0的基础上加入了一些cache的新特性,引入了实体标签,一般被称为e-tags,新增更为强大的Cache-Control头。</p> <ol start="5"> <li>错误通知的管理</li> </ol> <p>在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。</p> <h3>4、HTTP2.0:SPDY的升级版</h3> <p><strong>HTTP/2 是如何提高效率呢?</strong></p> <p><strong>二进制分帧:HTTP 2.0 的所有帧都采用二进制编码</strong></p> <ul> <li> <p><strong>帧</strong>:客户端与服务器通过交换帧来通信,帧是基于这个新协议通信的最小单位。</p> </li> <li> <p><strong>消息</strong>:是指逻辑上的 HTTP 消息,比如请求、响应等,由一或多个帧组成。</p> </li> <li> <p><strong>流</strong>:流是连接中的一个虚拟信道,可以承载双向的消息;每个流都有一个唯一的整数标识符(1、2…N);</p> </li> </ul> <p><strong>多路复用 (Multiplexing)</strong></p> <p>多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。有了新的分帧机制后,HTTP/2 不再依赖多个TCP 连接去实现多流并行了。每个数据流都拆分成很多互不依赖的帧,而这些帧可以交错(乱序发送),还可以分优先级。最后再在另一端把它们重新组合起来。HTTP 2.0 连接都是持久化的,而且客户端与服务器之间也只需要一个连接(<strong>每个域名一个连接</strong>)即可。</p> <p><strong>请求优先级</strong></p> <ul> <li> <p>把HTTP 消息分解为很多独立的帧之后,就可以通过优化这些帧的交错和传输顺序,每个流都可以带有一个31 比特的优先值:0 表示最高优先级;2的31次方-1 表示最低优先级。</p> </li> <li> <p>服务器可以根据流的优先级,控制资源分配(CPU、内存、带宽),而在响应数据准备好之后,优先将最高优先级的帧发送给客户端。</p> </li> <li> <p>HTTP 2.0 一举解决了所有这些低效的问题:浏览器可以在发现资源时立即分派请求,指定每个流的优先级,让服务器决定最优的响应次序。这样请求就不必排队了,既节省了时间,也最大限度地利用了每个连接。</p> </li> </ul> <p><strong>header压缩</strong></p> <p>HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP/2使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。</p> <p><strong>服务端推送</strong></p> <ul> <li> <p>服务器可以对一个客户端请求发送多个响应。服务器向客户端推送资源无需客户端明确地请求。</p> </li> <li> <p>HTTP 2.0 连接后,客户端与服务器交换SETTINGS 帧,借此可以限定双向并发的流的最大数量。</p> </li> <li> <p>所有推送的资源都遵守同源策略。换句话说,服务器不能随便将第三方资源推送给客户端,而必须是经过双方确认才行。</p> </li> <li> <p>服务器必须遵循请求 - 响应的循环,只能借着对请求的响应推送资源</p> </li> </ul> <p>参考:《图解HTTP》<br> 参考链接:HTTP</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1686774771435515904"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(计算机网络)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835434875872702464.htm" title="计算机网络八股总结" target="_blank">计算机网络八股总结</a> <span class="text-muted">Petrichorzncu</span> <a class="tag" taget="_blank" href="/search/%E5%85%AB%E8%82%A1%E6%80%BB%E7%BB%93/1.htm">八股总结</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>这里写目录标题网络模型划分(五层和七层)及每一层的功能五层网络模型七层网络模型(OSI模型)==三次握手和四次挥手具体过程及原因==三次握手四次挥手TCP/IP协议组成==UDP协议与TCP/IP协议的区别==Http协议相关知识网络地址,子网掩码等相关计算网络模型划分(五层和七层)及每一层的功能五层网络模型应用层:负责处理网络应用程序,如电子邮件、文件传输和网页浏览。主要协议包括HTTP、FTP</div> </li> <li><a href="/article/1835191235422285824.htm" title="nfs服务搭建" target="_blank">nfs服务搭建</a> <span class="text-muted">GHope</span> <div>nfs是什么?基哥度娘网络文件系统(NFS)是sun微系统最初开发的分布式文件系统协议,[1]允许客户端计算机上的用户通过计算机网络访问文件很像本地存储被访问。NFS与许多其他协议一样,在开放网络计算远程过程调用(很久以前RPC)系统上建立。NFS是在请求注释(RFC)中定义的开放标准,允许任何人实现协议。NFSNFS优势:节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,</div> </li> <li><a href="/article/1835157681590071296.htm" title="计算机网络基础" target="_blank">计算机网络基础</a> <span class="text-muted">柒公子c</span> <div>1通信协议1.1定义通信协议(communicationsprotocol)是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。通信协议是指通信各方事</div> </li> <li><a href="/article/1835086976097808384.htm" title="网络工程师学习笔记(一)" target="_blank">网络工程师学习笔记(一)</a> <span class="text-muted">专业白嫖怪</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">网络工程师学习笔记</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>为了备战下半年的软考——网络工程师,利用每天的下班的闲暇时间看书听课,然后自己手敲整理的系列资料。希望能够对你们有所帮助第一章__计算机网络概述计算机网络的定义:将分散的具有独立运算功能的计算机系统,通过通信线路和通信设备进行连接起来的实现资源的共享。ARPAnet网络的特征:资源共享、分散控制、分组交换1946年第一台通用计算机—埃尼亚克能够相互连通进行数据交换。1960年提出巨型网络,出现了对</div> </li> <li><a href="/article/1835054064145100800.htm" title="每日刷题Day_15-17" target="_blank">每日刷题Day_15-17</a> <span class="text-muted">Minamoshizuku</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E6%97%A5%E5%88%B7%E9%A2%98/1.htm">每日刷题</a> <div>1.在TCP/IP协议簇中,UDP协议工作在()。正确答案:B你的答案:B(正确)应用层传输层网络互联层网络接口层2.查看本机的IP配置、子网掩码、网关等信息,可使用下列哪个命令?()正确答案:D你的答案:D(正确)pingtelnettraceipconfig3.计算机网络有很多功能,最主要的是()。正确答案:D你的答案:D(正确)电子邮件电子商务WWW资源共享4.在OSI七层模型中,网络层的主</div> </li> <li><a href="/article/1834913988593414144.htm" title="2021国家开放大学计算机网络安全技术形成性考核五" target="_blank">2021国家开放大学计算机网络安全技术形成性考核五</a> <span class="text-muted">chaoliang.top</span> <a class="tag" taget="_blank" href="/search/%E5%9B%BD%E5%BC%80%E8%AF%95%E9%A2%98/1.htm">国开试题</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>本人还会继续更新其他国家开放大学的试题,请大家多多关注,如果有什么建议,还希望大家提出来,本人也好完善本人在测试答案的时候发现,本章考试回顾结果中明明选对了答案,但是提示错误的情况,并且该题没有提示正确答案,这种情况应该是国开试题出现bug导致,请大家不要担心,如果有追求完美的同学,多答几次,可能就会避开这种题,因为出题是随机的。1.SQL注入一般可通过网页表单直接输入选择多项:对错正确答案:对2</div> </li> <li><a href="/article/1834700445147295744.htm" title="计算机网络基础2-网络设备" target="_blank">计算机网络基础2-网络设备</a> <span class="text-muted">一条无趣的咸鱼</span> <div>网络设备中继器中继器:在一种网络中,每一网段的传输媒介均有其最大的传输距离,如细缆最大网段长度为185m,粗缆为500m,双绞线为100m,超过这个长度,传输介质中的数据信号就会衰减。中继器可以“延长”网络的距离,在网络数据传输中起到放大信号的作用。中继器工作于OSI模型的物理层。集线器集线器:对信号进行放大整形,延长网络距离,每个端口都可以与传输介质相连。数据传输是以广播的方式将数据包发送到所有</div> </li> <li><a href="/article/1834469152606220288.htm" title="网络技术包括哪些" target="_blank">网络技术包括哪些</a> <span class="text-muted">v_usps2280</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>1、计算机网络组网技术组网技术就是网络组建技术,分为以太网组网技术和ATM局域网组网技术。以太网组网非常灵活和简便,可使用多种物理介质,以不同拓扑结构组网,是国内外应用较为广泛的一种网络,已成为网络技术的主流。以太网按其传输速率又分成10Mb/s、100Mb/s、1000Mb/s。细缆以太网10BASE-210BASE-2以太网是采用IEEE802.3标准,它是一种典型的总线型结构。采用细缆为传输</div> </li> <li><a href="/article/1834340448651538432.htm" title="网络基础简单理解" target="_blank">网络基础简单理解</a> <span class="text-muted">小九说项目</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>计算机网络如何通信转发就是1发给2让2发给3标识hub集线器相当于网线间转发的一个作用中间人的作用用于个位数人少的时候物理层带有标识指定当被指定人接受到才会被消费其他人接收到就会丢掉CSMA/CD协议避免同时发送数据产生混乱sw交换机集线器升级版数据链路层交换机可以桥接扩展比较小的局域网使用千人使用交换机记录mac地址与端口映射网络内部高效传输全双工可以多线程工作交换机刚买来时候插网线它自己会先记</div> </li> <li><a href="/article/1834264432566431744.htm" title="字节跳动资深面试官亲述:15个经典面试问题及回答思路,知乎上转疯了!" target="_blank">字节跳动资深面试官亲述:15个经典面试问题及回答思路,知乎上转疯了!</a> <span class="text-muted">左夜天</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>前言这是“拔剑金九银十”的第二篇文章,本文主要针对3年以上的Android开发者进阶面试中高级开发工程师而整理。希望可以对你们有所帮助。不多废话,进入正题。目录:Java中高级计算机网络Android高级面试—性能优化Android优秀第三方库Androidframework相关其他Android高频面试题阿里P7薪资待遇**阿里薪资结构:**一般是12+1+3=16薪•年底的奖金为0-6个月薪资</div> </li> <li><a href="/article/1834256990159859712.htm" title="简述三次握手和四次断开" target="_blank">简述三次握手和四次断开</a> <span class="text-muted">Will_1130</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>在计算机网络中,TCP(TransmissionControlProtocol)是一种面向连接的协议,它通过三次握手(Three-WayHandshake)建立连接,并通过四次挥手(Four-WayWave)断开连接。下面分别简述这两个过程。三次握手(Three-WayHandshake)三次握手的过程是为了确保双方都准备好进行通信,并且可以正确地发送和接收数据。以下是三次握手的具体步骤:SYN(</div> </li> <li><a href="/article/1834237705895112704.htm" title="包含所有的计算机视频教程" target="_blank">包含所有的计算机视频教程</a> <span class="text-muted">rart2008</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E5%BA%94%E7%94%A8/1.htm">分布式应用</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a> <div>计算机视频教程http://www.study66.cn/soft/show.asp?id=1237北京师范大-多媒体视频http://www.study66.cn/soft/show.asp?id=1240北京理工大学编译原理串讲http://www.study66.cn/soft/show.asp?id=1241北京大学计算机网络视频教程http://www.study66.cn/soft/s</div> </li> <li><a href="/article/1833988895881129984.htm" title="计算机网络笔记分享(第四章 网络层)" target="_blank">计算机网络笔记分享(第四章 网络层)</a> <span class="text-muted">寒页_</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>文章目录四、网络层4.1网络层的几个重要概念网络层提供的两种服务虚电路服务数据报服务网络层的两个层面控制层面数据层面4.2网际协议IP虚拟互联网络IP地址IP地址及其表示方法分类的IP地址无分类编址CIDRIP地址与MAC地址地址解析协议ARPIP数据报的格式4.3IP层转发分组的过程基于终点的转发最长前缀匹配二叉搜索查找转发表4.4网际控制报文协议ICMP分类五种返回的差错报文询问报文4.5IP</div> </li> <li><a href="/article/1833988768529477632.htm" title="计算机网络笔记分享(第六章 应用层)" target="_blank">计算机网络笔记分享(第六章 应用层)</a> <span class="text-muted">寒页_</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>文章目录六、应用层6.1域名系统DNS解析的两种查询方式6.2文件传送协议FTP简单传输协议TFTP6.3远程终端协议TELNET6.4万维网WWW统一资源定位符URL超文本传输协议HTTP万维网的文档HTML万维网的信息检索系统博客和微博社交网站6.5电子邮件6.6动态主机配置协议DHCP6.7简单网络管理协议SNMP6.8应用进程跨越网络的通信几种常用的系统调用6.9P2P应用介绍学习计算机网</div> </li> <li><a href="/article/1833974470105198592.htm" title="Day 23课堂笔记" target="_blank">Day 23课堂笔记</a> <span class="text-muted">喝可乐的猫儿</span> <div>网络什么是网络?计算机网络是通信线路和通信设备将分布在不同地点的多台计算机系统互联接起来,按照共同的网络协议共享硬件,软件资源。硬件设备网卡它是把2进制的信息转化为高低电压的信号为调制过程相反为解调你见过那些网络?或者是什么样子1,计算机网络2,广播电视网络3,通信网络网络中两台计算机之间如何通信?1,物理设备至少需要有一块网卡(能够正常使用的)它起到一个调制它是受操作系统支配什么是调制:传输介质</div> </li> <li><a href="/article/1833965827766972416.htm" title="计算机网络中的分组交换是什么,计算机网络之分组交换" target="_blank">计算机网络中的分组交换是什么,计算机网络之分组交换</a> <span class="text-muted">hello I</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E4%B8%AD%E7%9A%84%E5%88%86%E7%BB%84%E4%BA%A4%E6%8D%A2%E6%98%AF%E4%BB%80%E4%B9%88/1.htm">计算机网络中的分组交换是什么</a> <div>在网络核心部分起特殊作用的是路由器,它是一种特殊的计算机。路由器是实现分组交换的关键构建。其任务是转发收到的分组。这是网络核心部分最重要的功能。为了弄清分组交换,先要介绍电路交换的基本概念。1.电路交换的主要特点如果要连接n台电话机,需要n*(n-1)/2条电话线,通过这种方式,无法连接全世界所有的电话机。为了实现连接所有电话机,所以选择了交换的方法。电话发明的一百多年来,电话交换机的方式,一直是</div> </li> <li><a href="/article/1833965574661697536.htm" title="计算机网络中 数据交换的方式有,计算机网络中的通信数据交换技术探讨" target="_blank">计算机网络中 数据交换的方式有,计算机网络中的通信数据交换技术探讨</a> <span class="text-muted">学写作的丧失</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E4%B8%AD/1.htm">计算机网络中</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BA%A4%E6%8D%A2%E7%9A%84%E6%96%B9%E5%BC%8F%E6%9C%89/1.htm">数据交换的方式有</a> <div>计算机网络中的通信数据交换技术探讨摘要:随着科技不断发展,人们对计算机网络技术越来越关注,计算机网络为人们生活带来诸多便利,是科技发展的基础工程。近年来,计算机网络中的通信数据交换技术被广泛应用,网络通信数据交换技术不断更新与发展,在加快计算机发展进程中发挥着重要作用。基于此,本文主要对计算机网络中的通信数据交换技术进行探讨与分析。关键词:计算机网络探讨通信数据交换技术通信数据交换技术是在终端之间</div> </li> <li><a href="/article/1833952836786941952.htm" title="交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输" target="_blank">交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输</a> <span class="text-muted">weixin_45544617</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E8%B7%AF%E7%94%B1%E5%99%A8/1.htm">智能路由器</a> <div>交换技术是一种在计算机网络和通信系统中广泛应用的关键技术,它主要通过交换设备(如交换机、路由器等)实现数据的转发和传输。交换技术的核心目的是在不同的设备之间高效地传输数据,实现信息的互联互通。一、交换技术的定义交换技术是指在计算机网络和通信系统中,通过交换设备实现数据的转发和传输的技术。它允许数据在网络中的不同节点之间进行传递,从而实现信息的共享和通信。二、交换技术的基本原理交换技术的基本原理是通</div> </li> <li><a href="/article/1833909086522011648.htm" title="【已解决】如何打开ftp文件合集" target="_blank">【已解决】如何打开ftp文件合集</a> <span class="text-muted">moz与京</span> <a class="tag" taget="_blank" href="/search/2024%E5%B9%B4%E6%8A%A5%E9%94%99%2F%E9%97%AE%E9%A2%98%E7%AD%89%E6%95%B4%E7%90%86/1.htm">2024年报错/问题等整理</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a> <div>别人分享了一个文件夹,说需要的文件就在ftp://xx.xx.x.xxx:xxxx下面的文件目录中,一下子看蒙了。本来以为是常见的链接,但是发现开头是ftp协议。深感困惑,上网搜索以后才知道:"FTP(FileTransferProtocol,文件传输协议)是一种用于在计算机网络上进行文件传输的标准协议。它主要用于在客户端和服务器之间传输文件。以下是一些关于FTP协议的关键知识点:1.基本概念:F</div> </li> <li><a href="/article/1833863699106983936.htm" title="计算机网络——ARP地址欺骗" target="_blank">计算机网络——ARP地址欺骗</a> <span class="text-muted">平杨猪</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/p2p/1.htm">p2p</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a> <div>《计算机网络与通讯》实验报告(3)实验名称:ARP地址欺骗所使用的工具软件及环境:硬件:交换机1台,路由器1台,计算机数台软件:snifferpro一、实验目的:1、掌握常见ARP欺骗类型和手段2、掌握ARP协议工作原理和格式3、掌握防范ARP地址欺骗的方法和措施4、掌握SnifferPro软件的使用二、实验内容:1.安装sniffer软件。2.使用sniffer软件抓去arp包。3.修改抓取的包</div> </li> <li><a href="/article/1833766622859456512.htm" title="斯尔福智慧实验室三阶段详解" target="_blank">斯尔福智慧实验室三阶段详解</a> <span class="text-muted">斯尔福实验室设备</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>未来二十时间,实验室智能化是各类实验室的发展方向。在这样的时代背景下,斯尔福提出设计建造更安全、舒适、高效、节能的智慧实验室,是整个实验室设计、建设的核心目地。斯尔福将智慧实验室分为3个阶段。如何实现实验室信息数据智能化,LEMS实验室智能环境设施管理系统,以实验室为中心,采用先进的计算机网络技术、数据库技术以及三维仿真技术,将实验室整体环境,包括设备。人员。危险物等数据,结合实验室用户标准化管理</div> </li> <li><a href="/article/1833750098308329472.htm" title="网络安全工程师自主学习计划表(具体到阶段目标)" target="_blank">网络安全工程师自主学习计划表(具体到阶段目标)</a> <span class="text-muted">大模型综述</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/1.htm">系统安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>前言接下来我将给大家分享一份网络安全工程师自学计划指南,全文将从学习路线、学习规划、学习方法三个方向来讲述零基础小白如何通过自学进阶网络安全工程师,全文篇幅有点长,同学们可以先点个收藏,以免日后错过了。目录前言学习路线学习规划初级1、网络安全理论知识(2天)2、渗透测试基础(1周)3、操作系统基础(1周)4、计算机网络基础(1周)5、数据库基础操作(2天)6、Web渗透(1周)中级、高级7、脚本编</div> </li> <li><a href="/article/1833642562003496960.htm" title="计算机网络——第一章 计算机网络概述" target="_blank">计算机网络——第一章 计算机网络概述</a> <span class="text-muted">eqa11</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a> <div>文章目录计算机网络——第一章计算机网络概述一、引言二、计算机网络基础1、计算机网络的定义2、网络的组成三、互联网概述1、互联网的基本概念2、互联网的发展历程四、计算机网络的类别与性能1、网络的分类2、网络性能指标五、计算机网络体系结构1、体系结构的概念1.1、分层的好处1.2、分层模型OSI七层模型TCP/IP四层模型2、协议与服务2.1、协议的三要素2.2、服务访问点六、总结计算机网络——第一章</div> </li> <li><a href="/article/1833627923546992640.htm" title="网路协议分别是" target="_blank">网路协议分别是</a> <span class="text-muted">白总Server</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>网络协议是计算机网络中用于数据传输和通信的一套规则和标准。这些协议定义了数据如何在网络中传输、如何在不同设备间进行通信、如何处理错误和数据包的格式等。1.TCP/IP传输控制协议/互联网协议(TCP/IP)是互联网的基础协议,它定义了数据如何在网络中传输。TCP负责数据的可靠传输,而IP负责数据包的路由和寻址。2.HTTP/HTTPS超文本传输协议(HTTP)是用于从服务器传输超文本到本地浏览器的</div> </li> <li><a href="/article/1833534257650298880.htm" title="计算机网络安装与调试题,计算机三级《网络技术》练习题及答案:无线局域网设备安装与调试..." target="_blank">计算机网络安装与调试题,计算机三级《网络技术》练习题及答案:无线局域网设备安装与调试...</a> <span class="text-muted">曲陌柘凝</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E5%AE%89%E8%A3%85%E4%B8%8E%E8%B0%83%E8%AF%95%E9%A2%98/1.htm">计算机网络安装与调试题</a> <div>计算机三级《网络技术》练习题及答案:无线局域网设备安装与调试1[单选题]一个APRN覆盖的区域答为一个小区,一个小区的室内与室外覆盖范围分别是()A.30,150B.30,50C.30.500D.50.150参考答案:A2[单选题]某家庭需要通过无线局域网将分布在不同房间的三台计算机接入Internet,并且ISP只给其分配一个IP地址。在这种情况下,应该选用的设备是()A.APB.无线路由器C.</div> </li> <li><a href="/article/1833468203473399808.htm" title="两阶段事务提交" target="_blank">两阶段事务提交</a> <span class="text-muted">码农小伙</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1/1.htm">事务</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>简介分布式事务是指会涉及到操作多个数据库的事务,在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调。XA就是X/OpenDTP定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等。XA接口函数由数据库厂商提供。二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有</div> </li> <li><a href="/article/1833410813516410880.htm" title="【计算机网络】(一)计算机网络概述" target="_blank">【计算机网络】(一)计算机网络概述</a> <span class="text-muted">Suifffff</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E8%80%83%E7%A0%94/1.htm">考研</a><a class="tag" taget="_blank" href="/search/408/1.htm">408</a> <div>文章目录【计算机网络】(一)计算机网络概述前言1.1计算机网络在信息时代中的作用1.2互联网概述1.2.1网络的网络1.2.2互联网基础结构发展的三个阶段1.2.3互联网标准化工作1.3互联网的组成1.3.1互联网的边缘部分1.3.2互联网的核心部分1.4计算机网络的类别1.4.1计算机网络的定义1.4.2几种不同类别的计算机网络1.5计算机网络的性能1.5.1计算机网络的性能指标1.5.2计算机</div> </li> <li><a href="/article/1833204456137781248.htm" title="子网ip和ip地址一样吗?子网ip地址怎么算" target="_blank">子网ip和ip地址一样吗?子网ip地址怎么算</a> <span class="text-muted">hgdlip</span> <a class="tag" taget="_blank" href="/search/ip/1.htm">ip</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AD%90%E7%BD%91ip/1.htm">子网ip</a> <div>在计算机网络的广阔世界里,‌IP地址作为设备的唯一标识,‌扮演着举足轻重的角色。‌然而,‌随着网络规模的扩大和复杂性的增加,‌子网划分成为提升网络管理效率和安全性的重要手段。‌这时,‌“子网IP地址”这一概念应运而生,‌那么。子网IP和IP地址一样吗?本文将深入探讨子网IP地址与普通IP地址之间的差异,‌并详细解析子网IP地址的计算方法,‌帮助读者更好地理解和应用这一网络知识。‌一、‌子网IP地址</div> </li> <li><a href="/article/1833155762428407808.htm" title="四级信息安全工程师考试大纲" target="_blank">四级信息安全工程师考试大纲</a> <span class="text-muted">憨憨tiantian</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a> <div>文章目录前言:考核项目一、考试方式二、操作系统原理1.基本要求2.考试内容三、计算机网络1.基本要求2.考试内容总结前言:考核项目四级信息安全工程师考核操作系统原理和计算机网络两门课程。测试内容包括网络攻击与保护的基本理论技术,以及操作系统、路由设备的安全防范技能。一、考试方式本考试为上机考试,时长为90分钟,满分100分。考试题型及分值(1)操作系统原理——单选题(30分)(2)操作系统原理——</div> </li> <li><a href="/article/1833103946739183616.htm" title="2025届美团秋招笔试题" target="_blank">2025届美团秋招笔试题</a> <span class="text-muted">今天不coding</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>题型及时间90分钟单选10+算法3单选包括Java基础八股文、设计模式、计算机网络、sql语句算法1题目描述小美准备登录美团,需要输入密码,小美忘记了密码,只记得密码可能是n个字符串中的一个。小美会按照密码的长度从小到大依次尝试每个字符串,对于相同长度的字符串,小美随机尝试,并且相同的密码只会尝试一次。小美想知道,她最少需要尝试多少次才能登录成功,最多需要尝试多少次才能登录成功。小美不会重新尝试已</div> </li> <li><a href="/article/71.htm" title="Linux的Initrd机制" target="_blank">Linux的Initrd机制</a> <span class="text-muted">被触发</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Lin</div> </li> <li><a href="/article/198.htm" title="maven本地仓库路径修改" target="_blank">maven本地仓库路径修改</a> <span class="text-muted">bitcarter</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>默认maven本地仓库路径:C:\Users\Administrator\.m2 修改maven本地仓库路径方法:     1.打开E:\maven\apache-maven-2.2.1\conf\settings.xml     2.找到        </div> </li> <li><a href="/article/325.htm" title="XSD和XML中的命名空间" target="_blank">XSD和XML中的命名空间</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/xsd/1.htm">xsd</a><a class="tag" taget="_blank" href="/search/schema/1.htm">schema</a><a class="tag" taget="_blank" href="/search/namespace/1.htm">namespace</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4/1.htm">命名空间</a> <div>http://www.360doc.com/content/12/0418/10/9437165_204585479.shtml http://blog.csdn.net/wanghuan203/article/details/9203621 http://blog.csdn.net/wanghuan203/article/details/9204337 http://www.cn</div> </li> <li><a href="/article/452.htm" title="Java 求素数运算" target="_blank">Java 求素数运算</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%B4%A0%E6%95%B0/1.htm">素数</a> <div>网络上对求素数之解数不胜数,我在此总结归纳一下,同时对一些编码,加以改进,效率有成倍热提高。 第一种:   原理: 6N(+-)1法         任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)   </div> </li> <li><a href="/article/579.htm" title="java 单例模式" target="_blank">java 单例模式</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>想必单例模式大家都不会陌生,有如下两种方式来实现单例模式:   class Singleton { private static Singleton instance=new Singleton(); private Singleton(){} static Singleton getInstance() { return instance; }</div> </li> <li><a href="/article/706.htm" title="Linux下Mysql源码安装" target="_blank">Linux下Mysql源码安装</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>1.假设已经有mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz (1)创建mysql的安装目录及数据库存放目录       解压缩下载的源码包,目录结构,特殊指定的目录除外:           </div> </li> <li><a href="/article/833.htm" title="32位和64位操作系统" target="_blank">32位和64位操作系统</a> <span class="text-muted">墙头上一根草</span> <a class="tag" taget="_blank" href="/search/32%E4%BD%8D%E5%92%8C64%E4%BD%8D%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">32位和64位操作系统</a> <div>32位和64位操作系统是指:CPU一次处理数据的能力是32位还是64位。现在市场上的CPU一般都是64位的,但是这些CPU并不是真正意义上的64 位CPU,里面依然保留了大部分32位的技术,只是进行了部分64位的改进。32位和64位的区别还涉及了内存的寻址方面,32位系统的最大寻址空间是2 的32次方= 4294967296(bit)= 4(GB)左右,而64位系统的最大寻址空间的寻址空间则达到了</div> </li> <li><a href="/article/960.htm" title="我的spring学习笔记10-轻量级_Spring框架" target="_blank">我的spring学习笔记10-轻量级_Spring框架</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/Spring+3/1.htm">Spring 3</a> <div>一、问题提问:     → 请简单介绍一下什么是轻量级?     轻量级(Leightweight)是相对于一些重量级的容器来说的,比如Spring的核心是一个轻量级的容器,Spring的核心包在文件容量上只有不到1M大小,使用Spring核心包所需要的资源也是很少的,您甚至可以在小型设备中使用Spring。  </div> </li> <li><a href="/article/1087.htm" title="mongodb 环境搭建及简单CURD" target="_blank">mongodb 环境搭建及简单CURD</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/Install/1.htm">Install</a><a class="tag" taget="_blank" href="/search/curd/1.htm">curd</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a><a class="tag" taget="_blank" href="/search/mongo/1.htm">mongo</a> <div>一 搭建mongodb环境 1. 在mongo官网下载mongodb 2. 在本地创建目录 "D:\Program Files\mongodb-win32-i386-2.6.4\data\db" 3. 运行mongodb服务 [mongod.exe --dbpath "D:\Program Files\mongodb-win32-i386-2.6.4\data\</div> </li> <li><a href="/article/1214.htm" title="数据字典和动态视图" target="_blank">数据字典和动态视图</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%AD%97%E5%85%B8/1.htm">数据字典</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E8%A7%86%E5%9B%BE/1.htm">动态视图</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%92%8C%E5%AF%B9%E8%B1%A1%E6%9D%83%E9%99%90/1.htm">系统和对象权限</a> <div>数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。随着数据库的启动而启动,数据库关闭时数据字典也关闭   数据字典中包含   数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等) 数据库为一</div> </li> <li><a href="/article/1341.htm" title="多线程编程一般规则" target="_blank">多线程编程一般规则</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a> <div>       如果两个工两个以上的线程都修改一个对象,那么把执行修改的方法定义为被同步的,如果对象更新影响到只读方法,那么只读方法也要定义成同步的。        不要滥用同步。如果在一个对象内的不同的方法访问的不是同一个数据,就不要将方法设置为synchronized的。 </div> </li> <li><a href="/article/1468.htm" title="将文件或目录拷贝到另一个Linux系统的命令scp" target="_blank">将文件或目录拷贝到另一个Linux系统的命令scp</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a><a class="tag" taget="_blank" href="/search/scp/1.htm">scp</a> <div>一.功能说明        scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下:        scp 远程用户名@IP地址:文件的绝对路径</div> </li> <li><a href="/article/1595.htm" title="【持久化框架MyBatis3五】MyBatis3一对多关联查询" target="_blank">【持久化框架MyBatis3五】MyBatis3一对多关联查询</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Mybatis3/1.htm">Mybatis3</a> <div>以教员和课程为例介绍一对多关联关系,在这里认为一个教员可以叫多门课程,而一门课程只有1个教员教,这种关系在实际中不太常见,通过教员和课程是多对多的关系。   示例数据:   地址表:   CREATE TABLE ADDRESSES ( ADDR_ID INT(11) NOT NULL AUTO_INCREMENT, STREET VAR</div> </li> <li><a href="/article/1722.htm" title="cookie状态判断引发的查找问题" target="_blank">cookie状态判断引发的查找问题</a> <span class="text-muted">bitcarter</span> <a class="tag" taget="_blank" href="/search/form/1.htm">form</a><a class="tag" taget="_blank" href="/search/cgi/1.htm">cgi</a> <div>先说一下我们的业务背景: 1.前台将图片和文本通过form表单提交到后台,图片我们都做了base64的编码,并且前台图片进行了压缩 2.form中action是一个cgi服务 3.后台cgi服务同时供PC,H5,APP 4.后台cgi中调用公共的cookie状态判断方法(公共的,大家都用,几年了没有问题) 问题:(折腾两天。。。。) 1.PC端cgi服务正常调用,cookie判断没</div> </li> <li><a href="/article/1849.htm" title="通过Nginx,Tomcat访问日志(access log)记录请求耗时" target="_blank">通过Nginx,Tomcat访问日志(access log)记录请求耗时</a> <span class="text-muted">ronin47</span> <div>一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间 nginx.conf使用配置方式: log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_r</div> </li> <li><a href="/article/1976.htm" title="java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。" target="_blank">java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class ProbabilityOfDice { /** * Q67 n个骰子的点数 * 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。 * 在以下求解过程中,我们把骰子看作是有序的。 * 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况 */ private stati</div> </li> <li><a href="/article/2103.htm" title="看别人的博客,觉得心情很好" target="_blank">看别人的博客,觉得心情很好</a> <span class="text-muted">Cb123456</span> <a class="tag" taget="_blank" href="/search/%E5%8D%9A%E5%AE%A2/1.htm">博客</a><a class="tag" taget="_blank" href="/search/%E5%BF%83%E6%83%85/1.htm">心情</a> <div>   以为写博客,就是总结,就和日记一样吧,同时也在督促自己。今天看了好长时间博客:    职业规划:    http://www.iteye.com/blogs/subjects/zhiyeguihua      android学习:    1.http://byandby.i</div> </li> <li><a href="/article/2230.htm" title="[JWFD开源工作流]尝试用原生代码引擎实现循环反馈拓扑分析" target="_blank">[JWFD开源工作流]尝试用原生代码引擎实现循环反馈拓扑分析</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a> <div>     我们已经不满足于仅仅跳跃一次,通过对引擎的升级,今天我测试了一下循环反馈模式,大概跑了200圈,引擎报一个溢出错误      在一个流程图的结束节点中嵌入一段方程,每次引擎运行到这个节点的时候,通过实时编译器GM模块,计算这个方程,计算结果与预设值进行比较,符合条件则跳跃到开始节点,继续新一轮拓扑分析,直到遇到</div> </li> <li><a href="/article/2357.htm" title="JS常用的事件及方法" target="_blank">JS常用的事件及方法</a> <span class="text-muted">cwqcwqmax9</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a> <div>事件 描述 onactivate 当对象设置为活动元素时触发。 onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发。 onbeforeactivate 对象要被设置为当前元素前立即触发。 onbeforecut 当选中区从文档中删除之前在源对象触发。 onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即</div> </li> <li><a href="/article/2484.htm" title="正则表达式验证日期格式" target="_blank">正则表达式验证日期格式</a> <span class="text-muted">dashuaifu</span> <a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/IT%E5%85%B6%E5%AE%83/1.htm">IT其它</a><a class="tag" taget="_blank" href="/search/java%E5%85%B6%E5%AE%83/1.htm">java其它</a> <div> 正则表达式验证日期格式 function isDate(d){ var v = d.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/i); if(!v) { this.focus(); return false; } } <input value="2000-8-8" onblu</div> </li> <li><a href="/article/2611.htm" title="Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证" target="_blank">Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>public array rules () {return} array 要调用 validate() 时应用的有效性规则。 返回属性的有效性规则。声明验证规则,应重写此方法。 每个规则是数组具有以下结构:array('attribute list', 'validator name', 'on'=>'scenario name', ...validation </div> </li> <li><a href="/article/2738.htm" title="UITextAttributeTextColor = deprecated in iOS 7.0" target="_blank">UITextAttributeTextColor = deprecated in iOS 7.0</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a> <div>In this lesson we used the key "UITextAttributeTextColor" to change the color of the UINavigationBar appearance to white. This prompts a warning "first deprecated in iOS 7.0." Ins</div> </li> <li><a href="/article/2865.htm" title="判断一个数是质数的几种方法" target="_blank">判断一个数是质数的几种方法</a> <span class="text-muted">EmmaZhao</span> <a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>质数也叫素数,是只能被1和它本身整除的正整数,最小的质数是2,目前发现的最大的质数是p=2^57885161-1【注1】。 判断一个数是质数的最简单的方法如下: def isPrime1(n): for i in range(2, n): if n % i == 0: return False return True 但是在上面的方法中有一些冗余的计算,所以</div> </li> <li><a href="/article/2992.htm" title="SpringSecurity工作原理小解读" target="_blank">SpringSecurity工作原理小解读</a> <span class="text-muted">坏我一锅粥</span> <a class="tag" taget="_blank" href="/search/SpringSecurity/1.htm">SpringSecurity</a> <div>   SecurityContextPersistenceFilter   ConcurrentSessionFilter   WebAsyncManagerIntegrationFilter   HeaderWriterFilter   CsrfFilter   LogoutFilter   Use</div> </li> <li><a href="/article/3119.htm" title="JS实现自适应宽度的Tag切换" target="_blank">JS实现自适应宽度的Tag切换</a> <span class="text-muted">ini</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>效果体验:http://hovertree.com/texiao/js/3.htm   该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页。 HTML文件代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"</div> </li> <li><a href="/article/3246.htm" title="Hbase Rest API : 数据查询" target="_blank">Hbase Rest API : 数据查询</a> <span class="text-muted">kane_xie</span> <a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a><a class="tag" taget="_blank" href="/search/hbase/1.htm">hbase</a> <div>hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。   启动命令:./bin/hbase rest s</div> </li> <li><a href="/article/3373.htm" title="JQuery实现鼠标拖动元素移动位置(源码+注释)" target="_blank">JQuery实现鼠标拖动元素移动位置(源码+注释)</a> <span class="text-muted">明子健</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81/1.htm">源码</a><a class="tag" taget="_blank" href="/search/%E6%8B%96%E5%8A%A8/1.htm">拖动</a><a class="tag" taget="_blank" href="/search/%E9%BC%A0%E6%A0%87/1.htm">鼠标</a> <div>欢迎讨论指正!   print.html代码: <!DOCTYPE html> <html> <head> <meta http-equiv=Content-Type content="text/html;charset=utf-8"> <title>发票打印</title> &l</div> </li> <li><a href="/article/3500.htm" title="Postgresql 连表更新字段语法 update" target="_blank">Postgresql 连表更新字段语法 update</a> <span class="text-muted">qifeifei</span> <a class="tag" taget="_blank" href="/search/PostgreSQL/1.htm">PostgreSQL</a> <div>下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下: UPDATE tops_visa.visa_order SET op_audit_abort_pass_date = now() FROM tops_visa.visa_order as t1 INNER JOIN tops_visa.visa_visitor as t2 ON t1. </div> </li> <li><a href="/article/3627.htm" title="将redis,memcache结合使用的方案?" target="_blank">将redis,memcache结合使用的方案?</a> <span class="text-muted">tcrct</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a> <div>公司架构上使用了阿里云的服务,由于阿里的kvstore收费相当高,打算自建,自建后就需要自己维护,所以就有了一个想法,针对kvstore(redis)及ocs(memcache)的特点,想自己开发一个cache层,将需要用到list,set,map等redis方法的继续使用redis来完成,将整条记录放在memcache下,即findbyid,save等时就memcache,其它就对应使用redi</div> </li> <li><a href="/article/3754.htm" title="开发中遇到的诡异的bug" target="_blank">开发中遇到的诡异的bug</a> <span class="text-muted">wudixiaotie</span> <a class="tag" taget="_blank" href="/search/bug/1.htm">bug</a> <div>今天我们服务器组遇到个问题: 我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>