HTTP基本原理(格式详解)

一、HTTP请求格式      

       做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP协议传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,而消息头是必须的。每当我们打开一个网页,在上面点击右键,选择“查看源文件”,这时看到的HTML代码就是HTTP的消息体,那么消息头可以通过浏览器的开发工具或者插件可以看到,如果火狐的Firebug,IE的Httpwatch。

      客户端通过发送 HTTP 请求向服务器请求对资源的访问。 它向服务器传递了一个数据块,也就是请求信息,HTTP 请求由三部分组成:请求行、  请求头和请求正文。

  (1)、请求行:请求方法 URI 协议/版本

  (2)、请求头(Request Header)

 (3)、 请求正文

下面是一个HTTP请求的数据:

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
 

1、请求行:请求方法URI协议/版本

 请求的第一行是“方法 URL  协议/版本”,并以 回车换行作为结尾。请求行以空格分隔。格式如下:
POST /index.php HTTP/1.1
以上代码中“POST”代表请求方法,“/index.php”表示URI,“HTTP/1.1代表协议和协议的版本。
        根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最常用的方法是GET和POST。
         URL完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头,最后,协议版本声明了通信过程中使用HTTP的版本。   

请求方法

在 HTTP 协议中,HTTP 请求可以使用多种请求方法,这些方法指明了要以何种方式来访问 Request-URI 所标识的资源。HTTP1.1 支持的请求方法如下表所示:

HTTP1.1 中的请求方式:
方法 作用
GET 请求获取由 Request-URI 所标识的资源
POST 请求服务器接收在请求中封装的实体,并将其作为由 Request-Line 中的 Request-URI 所标识的资源的一部分
HEAD 请求获取由 Request-URI 所标识的资源的响应消息报头
PUT

请求服务器存储一个资源,并用 Request-URI 作为其标识符

DELETE 请求服务器删除由 Request-URI 所标识的资源
TRACE 请求服务器回送到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
 

重点介绍 GET、POST 和 HEAD 三个方法:

(1)GET

        GET 方法用于获取由 Request-URI 所标识的资源的信息,常见的形式是:

        GET Request-URI HTTP/1.1
        GET方法是默认的HTTP请求方法,例如当我们通过在浏览器的地址栏中直接输入网址的方式去访问网页的时候,浏览器采用的就是 GET 方法向服务器获取资源。

        我们可以使用GET方法来提交表单数据,用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如:
         Http://localhost/login.php?username=aa&password=1234

        从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容)另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大。这是因为浏览器对url的长度有限制

       各种浏览器也会对url的长度有所限制,下面是几种常见浏览器的url长度限制:(单位:字符)

IE : 2803
Firefox:65536
Chrome:8182
Safari:80000
Opera:190000 

(2)POST

          POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。 在请求头信息结束之后的两个回车换行之后(实际是空一行),就是表单提交的数据。如上面提到的post表单数据:

        username=aa&password=1234

        POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。

  从编程的角度来讲,如果用户通过GET方法提交数据,则数据存放在QUERY_STRING环境变量中,而POST方法提交的数据则可以从标准输入流中获取。

 

 GET与POST方法有以下区别:

      1、  在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放在HTTP包的body中。

      2、 GET方式提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST则没有此限制。

      3、安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

      4.、服务器取值方式不一样。GET方式取值,如php可以使用$_GET来取得变量的值,而POST方式通过$_POST来获取变量的值。

 

(3)HEAD

     HEAD 方法与 GET 方法几乎是相同的,它们的区别在于 HEAD 方法只是请求消息报头,而不是完整的内容。对于 HEAD 请求的回应部分来说,它的 HTTP 头部中包含的信息与通过 GET 请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到 Request-URI 所标识的资源的信息。这个方法通常被用于测试超链接的有效性,是否可以访问,以及最近是否更新。

    要注意的是,在 HTML 文档中,书写 get 和 post,大小写都可以,但在 HTTP 协议中的 GET 和 POST 只能是大写形式。

2. 请求头

每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

HTTP最常见的请求头如下:

Transport 头域

Connection:

作用:表示是否需要持久连接。

如果服务器看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,服务器需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入 ByteArrayOutputStream,然后在正式写出内容之前计算它的大小;

例如: Connection: keep-alive   当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的  网页,会继续使用这一条已经建立的连接

例如:  Connection: close  代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,  当客户端再次发送Request,需要重新建立TCP连接。

Host(发送请求时,该报头域是必需的)

Host请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。

eg:http://;localhost/index.html
浏览器发送的请求消息中,就会包含Host请求报头域,如下:
Host:
localhost

此处使用缺省端口号80,若指定了端口号8080,则变成:Host:localhost:8080

Client 头域

Accept:

作用:浏览器可以接受的媒体类型(MIME类型),

例如:  Accept: text/html  代表浏览器可以接受服务器回发的类型为 text/html  也就是我们常说的html文档, 如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)。

通配符 * 代表任意类型。例如  Accept: */*  代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)

Accept-Encoding:

作用: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate),(注意:这不是只字符编码);

例如: Accept-Encoding: gzip, deflate。Server能够向支持gzip/deflate的浏览器返回经gzip或者deflate编码的HTML页面。 许多情形下这可以减少5到10倍的下载时间,也节省带宽。

Accept-Language:

作用: 浏览器申明自己接收的语言。 

语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等;

例如: Accept-Language:zh-cn 。如果请求消息中没有设置这个报头域,服务器假定客户端对各种语言都可以接受。

User-Agent:

作用:告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本.

我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上, 服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。

例如: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)

Accept-Charset:

作用:浏览器申明自己接收的字符集,这就是本文前面介绍的各种字符集和字符编码,如gb2312,utf-8(通常我们说Charset包括了相应的字符编码方案);

例如:Accept-Charset:iso-8859-1,gb2312.如果在请求消息中没有设置这个域,缺省是任何字符集都可以接受。

Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中;

Authorization请求报头域主要用于证明客户端有权查看某个资源。当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。

Cookie/Login 头域

Cookie:

作用: 最重要的header, 将cookie的值发送给HTTP 服务器

Entity头域

Content-Length

作用:发送给HTTP服务器数据的长度。即请求消息正文的长度;

例如: Content-Length: 38

Content-Type:

作用:

例如:Content-Type: application/x-www-form-urlencoded

Miscellaneous 头域

Referer:

作用: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的,比如从我主页上链接到一个朋友那里, 他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问    他的网站。

例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wT

Cache 头域

If-Modified-Since:

作用: 把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中。

例如:If-Modified-Since: Thu, 09 Feb 2012 09:07:57 GMT。

If-None-Match:

作用: If-None-Match和ETag一起工作,工作原理是在HTTP Response中添加ETag信息。 当用户再次请求该资源时,将在HTTP Request 中加入If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变(该资源没有更新),将返回一个304状态告诉客户端使用本地缓存文件。否则将返回200状态和新的资源和Etag.  使用这样的机制将提高网站的性能

例如: If-None-Match: "03f2b33c0bfcc1:0"

Pragma:

作用: 防止页面被缓存, 在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一样

Pargma只有一个用法, 例如: Pragma: no-cache

注意: 在HTTP/1.0版本中,只实现了Pragema:no-cache, 没有实现Cache-Control

Cache-Control:

作用: 这个是非常重要的规则。 这个用来指定Response-Request遵循的缓存机制。各个指令含义如下

Cache-Control:Public   可以被任何缓存所缓存()

Cache-Control:Private     内容只缓存到私有缓存中

Cache-Control:no-cache  所有内容都不会被缓存

二、 HTTP响应格式      

      在接收和解释请求消息后,服务器会返回一个 HTTP 响应消息。与 HTTP 请求类似,HTTP 响应也是由三个部分组成,分别是:状态行、消息报头和响应正文。如:

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响应示例<title> </head> <body> Hello HTTP! </body> </html></p><p> </p></pre> <h3 style="color:rgb(51,51,51);font-family:Arial;line-height:26px;"> <span style="color:rgb(51,51,255);">1、状态行</span></h3> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <span></span>       状态行由协议版本、数字形式的状态代码,及相应的状态描述组成,各元素之间以空格分隔,结尾时回车换行符,格式如下:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <span></span>HTTP-Version Status-Code Reason-Phrase CRLF</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <span></span>HTTP-Version 表示服务器 HTTP 协议的版本,Status-Code 表示服务器发回的响应代码,Reason-Phrase 表示状态代码的文本描述,CRLF 表示回车换行。例如:</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <span></span>HTTP/1.1 200 OK (CRLF)</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <strong>      状态代码与状态描述</strong></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <span></span>      状态代码由 3 位数字组成, 表示请求是否被理解或被满足,状态描述给出了关于状态码的简短的文字描述。状态码的第一个数字定义了响应类别,后面两位数字没有具体分类。第一个数字有 5 种取值,如下所示。</p> <ul style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <li>1xx:指示信息——表示请求已经接受,继续处理</li> <li>2xx:成功——表示请求已经被成功接收、理解、接受。</li> <li>3xx:重定向——要完成请求必须进行更进一步的操作</li> <li>4xx:客户端错误——请求有语法错误或请求无法实现</li> <li>5xx:服务器端错误——服务器未能实现合法的请求。</li> </ul> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> 常见状态代码、状态描述、说明:<br> 200 OK      //客户端请求成功<br> 400 Bad Request  //客户端请求有语法错误,不能被服务器所理解<br> 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 <br> 403 Forbidden  //服务器收到请求,但是拒绝提供服务<br> 404 Not Found  //请求资源不存在,eg:输入了错误的URL<br> 500 Internal Server Error //服务器发生不可预期的错误<br> 503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常</p> <h3 style="color:rgb(51,51,51);font-family:Arial;line-height:26px;"> <span style="color:rgb(51,51,255);">2、响应正文</span></h3> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> 响应正文就是服务器返回的资源的内容,响应头和正文之间也必须用空行分隔<span style="font-size:12pt;">。如:</span></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <span style="font-size:12pt;"></span></p> <div class="dp-highlighter bg_html" style="font-family:Consolas, 'Courier New', Courier, mono, serif;border:1px dashed rgb(153,153,153);overflow:auto;color:rgb(51,51,51);line-height:26px;"> <div class="bar"> <div class="tools" style="font-size:9px;line-height:normal;font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;color:#C0C0C0;"> <strong>[html]</strong>  view plain <span class="tracking-ad"> copy</span> <div style="width:27px;z-index:99;"> </div> <span class="tracking-ad"> print</span> ? </div> </div> <ol start="1" class="dp-xml" style="border:none;color:rgb(92,92,92);"> <li class="alt" style="border:none;list-style:outside;color:inherit;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;"><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"><</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">html</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">  </span></span></li> <li style="border:none;list-style:outside;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;"><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"><</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">head</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">  </span></span></li> <li class="alt" style="border:none;list-style:outside;color:inherit;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;"><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"><</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">title</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">HTTP响应示例</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"><</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">title</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">  </span></span></li> <li style="border:none;list-style:outside;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;"><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"></</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">head</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">  </span></span></li> <li class="alt" style="border:none;list-style:outside;color:inherit;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;"><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"><</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">body</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">  </span></span></li> <li style="border:none;list-style:outside;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;">Hello HTTP!  </span></li> <li class="alt" style="border:none;list-style:outside;color:inherit;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;"><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"></</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">body</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">  </span></span></li> <li style="border:none;list-style:outside;line-height:13.1999998092651px;"> <span style="border:none;color:#000000;"><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;"></</span><span class="tag-name" style="border:none;color:rgb(153,51,0);font-weight:bold;">html</span><span class="tag" style="border:none;color:rgb(153,51,0);font-weight:bold;">></span><span style="border:none;">  </span></span></li> </ol> </div> <h3 style="color:rgb(51,51,51);font-family:Arial;line-height:26px;"> <span style="color:rgb(51,51,255);">3 、响应头信息</span></h3> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <span style="font-size:16px;"><span style="font-size:12px;">HTTP最常见的响应头如下所示:</span></span></p> <h4 style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> Cache头域</h4> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <p><strong>Date:</strong></p> <p>作用:生成消息的具体时间和日期,即当前的GMT时间。</p> <p>例如: Date: Sun, 17 Mar 2013 08:12:54 GMT</p> <p><strong>Expires:</strong></p> <p>作用: 浏览器会在指定过期时间内使用本地缓存,指明应该在什么时候认为文档已经过期,从而不再缓存它。</p> <p>例如: Expires: Thu, 19 Nov 1981 08:52:00 GMT  </p> <p><strong>Vary</strong></p> <p>作用:</p> <p>例如: Vary: Accept-Encoding</p> </blockquote> <h4 style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> Cookie/Login 头域</h4> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <p><strong>P3P</strong></p> <p>作用: 用于跨域设置Cookie, 这样可以解决iframe跨域访问cookie的问题</p> <p>例如: P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR</p> <p><strong>Set-Cookie</strong></p> <p>作用: 非常重要的header, 用于把cookie 发送到客户端浏览器, 每一个写入cookie都会生成一个Set-Cookie.</p> <p>例如: Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/</p> </blockquote> <h4 style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> Entity实体头域:</h4> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <strong>            实体内容的属性,包括实体信息类型,长度,压缩方法,最后一次修改时间,数据有效性等。</strong></p> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <p><strong>ETag:</strong></p> <p>作用:  和If-None-Match 配合使用。 (实例请看上节中If-None-Match的实例)</p> <p>例如: ETag: "03f2b33c0bfcc1:0"</p> <p><strong>Last-Modified:</strong></p> <p>作用: 用于指示资源的最后修改日期和时间。(实例请看上节的If-Modified-Since的实例)</p> <p>例如: Last-Modified: Wed, 21 Dec 2011 09:09:10 GMT</p> <p><strong>Content-Type:</strong></p> <p>作用:WEB服务器告诉浏览器自己响应的对象的类型和字符集,</p> <p>例如:</p> <p>        Content-Type: text/html; charset=utf-8</p> <p>  Content-Type:text/html;charset=GB2312</p> <p>  Content-Type: image/jpeg</p> <p><strong>Content-Length:</strong></p> <p>指明实体正文的长度,以字节方式存储的十进制数字来表示。在数据下行的过程中,Content-Length的方式要预先在服务器中缓存所有数据,然后所有数据再一股脑儿地发给客户端。</p> <p>  例如: Content-Length: 19847</p> <p><strong>Content-Encoding:</strong></p> <p>作用:文档的编码(Encode)方法。一般是压缩方式。</p> <p>WEB服务器表明自己使用了什么压缩方法(gzip,deflate)压缩响应中的对象。利用gzip压缩文档能够显著地减少HTML文档的下载时间。</p> <p>例如:Content-Encoding:gzip</p> <p><strong>Content-Language:</strong></p> <p>作用: WEB服务器告诉浏览器自己响应的对象的语言者</p> <p>例如: Content-Language:da</p> </blockquote> <h4 style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> Miscellaneous 头域</h4> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <p><strong>Server:</strong></p> <p>作用:指明HTTP服务器的软件信息</p> <p>例如:Apache/2.2.8 (Win32) PHP/5.2.5</p> <p><strong>X-Powered-By:</strong></p> <p>作用:表示网站是用什么技术开发的</p> <p>例如: X-Powered-By: PHP/5.2.5</p> </blockquote> <h4 style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> Transport头域</h4> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <p><strong>Connection:</strong></p> <p>例如: Connection: keep-alive   当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接</p> <p>例如:  Connection: close  代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。</p> </blockquote> <h4 style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> Location头域</h4> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <p><strong>Location:</strong></p> <p>作用: 用于重定向一个新的位置, 包含新的URL地址</p> <p>实例请看304状态实例</p> </blockquote> <span style="color:rgb(51,51,255);font-size:22px;line-height:36px;font-family:Arial;">三、 补充</span> <blockquote style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;"> <p></p> </blockquote> <h3 style="color:rgb(51,51,51);font-family:Arial;line-height:26px;"> <span>HTTP协议是无状态的和Connection: keep-alive的区别</span></h3> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;">   无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;">   HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;">   从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。</p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;">   Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。</p> <p style="font-family:Arial;font-size:14px;line-height:26px;"><span style="color:rgb(75,75,75);font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:21px;">  由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的</span><span style="font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:21px;"><span style="color:#ff0000;">在线状态</span></span><span style="color:rgb(75,75,75);font-family:Helvetica, Tahoma, Arial, sans-serif;font-size:14px;line-height:21px;">,需要不断地向服务器发起连接请求。通常 的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道 客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开</span><br></p> <p style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;">  </p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1278410571514920960"></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/1835157681590071296.htm" title="计算机网络基础" target="_blank">计算机网络基础</a> <span class="text-muted">柒公子c</span> <div>1通信协议1.1定义通信协议(communicationsprotocol)是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。通信协议是指通信各方事</div> </li> <li><a href="/article/1835046372341018624.htm" title="PON光模块的独特类型和特性" target="_blank">PON光模块的独特类型和特性</a> <span class="text-muted">audrey-luo</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%85%89%E6%A8%A1%E5%9D%97/1.htm">光模块</a><a class="tag" taget="_blank" href="/search/PON%E6%A8%A1%E5%9D%97/1.htm">PON模块</a><a class="tag" taget="_blank" href="/search/PON%E6%8A%80%E6%9C%AF/1.htm">PON技术</a> <div>在当前互联网需求快速增长的背景下,PON光模块已成为实现光纤网络高速数据传输的重要组成部分。从住宅宽带到各种企业应用程序解决方案,PON光模块始终致力于实现高质量的数据传输与无缝通信。了解PON光模块的类型和特性对于深入理解现代网络基础设施至关重要,本文将探讨PON光模块的多种类型及其独特优势,展示其在现代网络连接中的重要作用。PON光模块又称无源光网络模块,是电信网络中的关键组件,有助于通过光纤</div> </li> <li><a href="/article/1834717840607899648.htm" title="java的socket实现一个九宫棋游戏" target="_blank">java的socket实现一个九宫棋游戏</a> <span class="text-muted">睡不醒的小泽</span> <div>前言一个简单的socket小作品=v=一个机酱在大三实验课中接触到很基础的JAVA语言socket编程。至于你问为什么嵌入式的机酱会弄些Java吗?emmmmm,可能是当初C语言版的不够好玩吧,另外如果碰巧有用,欢迎抱走的yoo在之前的笔记《网络基础知识和网络编程》中有讲解过关于网络编程的一些基本知识,以及一些LinuxC的socket编程,希望粗浅了解socket内部肌理的同学,右转咱的学习笔记</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/1834514532479889408.htm" title="网络安全(黑客)——自学2024" target="_blank">网络安全(黑客)——自学2024</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/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/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%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>一、什么是网络安全网络安全是一种综合性的概念,涵盖了保护计算机系统、网络基础设施和数据免受未经授权的访问、攻击、损害或盗窃的一系列措施和技术。经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。二、网络安全怎么入门安全并非孤立存在,而是建立在其计算机基础之上的应用技术。</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/1833913498179039232.htm" title="2024年最全软件测试面试常见问题【含答案】_软件测试面试常见问题及答案,优秀软件测试程序员必知必会的网络基础" target="_blank">2024年最全软件测试面试常见问题【含答案】_软件测试面试常见问题及答案,优秀软件测试程序员必知必会的网络基础</a> <span class="text-muted">2401_84563179</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/%E9%9D%A2%E8%AF%95/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/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新需要这份系统化的资料的朋友,可以戳这里获取4、如何保障测试质量?面试官考察:1、你对质量的认知;2、你的过往经验中是如何来保障测试质量的。参考以</div> </li> <li><a href="/article/1833853231709646848.htm" title="NISP 一级 —— 考证笔记合集" target="_blank">NISP 一级 —— 考证笔记合集</a> <span class="text-muted">SRC_BLUE_17</span> <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/%E8%B5%84%E6%BA%90%E5%AF%BC%E8%88%AA/1.htm">资源导航</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E7%9B%B8%E5%85%B3%E7%AC%94%E8%AE%B0/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%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E8%AF%81%E4%B9%A6%E8%8E%B7%E5%8F%96/1.htm">证书获取</a><a class="tag" taget="_blank" href="/search/NISP/1.htm">NISP</a> <div>该笔记为导航目录,在接下来一段事件内,我会每天发布我关于考取该证书的相关笔记。当更新完成后,此条注释会被删除。第一章信息安全概述1.1信息与信息安全1.2信息安全威胁1.3信息安全发展阶段与形式1.4信息安全保障1.5信息系统安全保障第二章信息安全基础技术2.1密码学2.2数字证书与公钥基础设施2.3身份认证2.4访问控制2.5安全审计第三章网络安全防护技术3.1网络基础知识3.2网络安全威胁3.</div> </li> <li><a href="/article/1833850584504037376.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/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>网络安全风险评估是一种系统性的分析过程,旨在识别和评估网络系统中的潜在安全风险。这个过程包括识别网络资产、分析可能的威胁和脆弱性、评估风险的可能性和影响,以及提出缓解措施。网络安全风险评估有助于组织了解其网络安全状况,制定相应的安全策略和应急计划,以减少安全事件发生的风险。评估流程网络安全风险评估通常遵循以下步骤:确定评估目标和范围:明确评估的网络系统、信息系统和网络基础设施的边界。资产识别和分类</div> </li> <li><a href="/article/1833778095174283264.htm" title="速盾:cdn请求次数千万正常吗" target="_blank">速盾:cdn请求次数千万正常吗</a> <span class="text-muted">速盾cdn</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><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/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a> <div>CDN(ContentDeliveryNetwork)是一种用于提高网络内容传输速度和可靠性的网络基础设施。它通过在全球分布多个数据中心的服务器存储网站的静态资源,将用户请求分发到最近的服务器,从而减少数据传输的时间和延迟。但是,对于CDN请求次数达到千万级别,我们需要根据具体情况来评估其是否正常。首先,我们需要考虑的是该CDN请求次数的时间跨度。如果这千万级别的请求是在很短的时间内产生的,例如几</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/1833537287166717952.htm" title="MelosBoom vs. Google Nest: 打造未来智能家居的去中心化之路" target="_blank">MelosBoom vs. Google Nest: 打造未来智能家居的去中心化之路</a> <span class="text-muted">区块链小八歌</span> <a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a> <div>在智能家居领域,GoogleNest凭借其出色的硬件设计和强大的AI助手,成为了家庭管理和物联网控制的标杆。然而,随着人们对数据隐私和自主权的日益关注,集中化的智能家居系统逐渐暴露出其固有的缺陷。MelosBoom的出现,为这一领域带来了新的突破,其去中心化的网络架构和独特的AI驱动能力,正重新定义未来智能家居的标准。对更加符合应用场景的网络基础设施需求成为了未来机构在投资选择时的更加青睐领域。例</div> </li> <li><a href="/article/1832562728854712320.htm" title="ipv4v6双栈技术_【第二十六期】IPv6系列应用篇——数据中心IPv4/IPv6双栈架构探讨..." target="_blank">ipv4v6双栈技术_【第二十六期】IPv6系列应用篇——数据中心IPv4/IPv6双栈架构探讨...</a> <span class="text-muted">weixin_39598308</span> <a class="tag" taget="_blank" href="/search/ipv4v6%E5%8F%8C%E6%A0%88%E6%8A%80%E6%9C%AF/1.htm">ipv4v6双栈技术</a> <div>背景2017年,工业和信息化部发布了《推进互联网协议第六版(IPv6)规模部署行动计划》的通知,从国家层面推动下一代IP技术——IPv6的普及和应用。目标到2020年末,IPv6活跃用户数超过5亿,在互联网用户中的占比超过50%,新增网络地址不再使用私有IPv4地址。这就要求从互联网应用、网络基础设施、应用基础设施和网络安全等各个维度推动IPv6的改造和建设。互联网业务的IPv6改造不会一蹴而就,</div> </li> <li><a href="/article/1832271003854663680.htm" title="速盾:开了高防cdn打开还慢的原因分析" target="_blank">速盾:开了高防cdn打开还慢的原因分析</a> <span class="text-muted">速盾cdn</span> <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/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>在网络时代,网站的快速加载速度对于用户体验和网站排名至关重要。为了提升网站的访问速度和安全性,很多网站都使用了高防CDN(ContentDeliveryNetwork)服务。然而,有时候即使使用了高防CDN,网站的加载速度仍然很慢。本文将分析开了高防CDN打开还慢的原因,并提出相应的解决方案。基础网络速度慢首先,高防CDN只能加速到用户所在地区的网络。如果用户所在地区的网络基础速度本身就较慢,那么</div> </li> <li><a href="/article/1832215144650862592.htm" title="Python中的深度学习神经网络" target="_blank">Python中的深度学习神经网络</a> <span class="text-muted">2301_78297473</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a> <div>文章目录1.引言-简介-深度学习与Python的关系2.神经网络的原理-神经网络基础知识-Python中的神经网络库与工具-构建与训练神经网络模型的步骤深度学习训练过程3.卷积神经网络的原理-卷积层与池化层-特征提取与全连接层-Python中的CNN库与工具4.Python中深度学习的挑战和未来发展方向-计算资源与速度-迁移学习与模型压缩-融合多种深度学习算法1.引言-简介深度学习是机器学习的一个</div> </li> <li><a href="/article/1832003623211593728.htm" title="IP地址存在的意义及更改方法探析" target="_blank">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/%E6%9B%B4%E6%8D%A2ip%E5%9C%B0%E5%9D%80/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/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>在互联网的广阔天地中,‌每一个连接的设备都拥有一个独特的身份标识——IP地址。‌它不仅是设备在网络中的“身份证”,‌更是确保数据传输准确无误的基石。‌然而,‌随着网络环境的不断变化,‌有时我们需要更改设备的IP地址以适应新的网络需求。‌本文将深入探讨IP地址存在的意义,‌并详细介绍更改IP地址怎么改,‌帮助读者更好地理解和应用这一网络基础知识。‌一、‌IP地址存在的意义唯一标识‌:‌IP地址作为网</div> </li> <li><a href="/article/1831846027695583232.htm" title="网络编程----网络基础ip地址" target="_blank">网络编程----网络基础ip地址</a> <span class="text-muted">嵌入式----HR</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/ip/1.htm">ip</a> <div>一丶IP地址1.基本概念1.IP地址是Internet中主机的标识2.Internet中的主机要与别的机器通信必须具有一个IP地址3.IP地址为32位(IPv4)或者128位(IPv6)NAT:公网转私网、私网转公网4.IPV4表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。NAT设备(网络地址转换)●功能:NAT设备的主要功能是将内部私有IP地址转</div> </li> <li><a href="/article/1831555092248096768.htm" title="【python】socket 入门以及多线程tcp链接" target="_blank">【python】socket 入门以及多线程tcp链接</a> <span class="text-muted">丕羽</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Socket入门及多线程tcp链接网络基础知识三要素Socket是套接字的意思,是网络编程的核心对象,通信两端都独有自己的Socket对象,数据在两个Socket之间通过字节流(TCP协议)或者数据报包(UDP协议)的形式进行传输.本文主要针对tcp流程进行讲解socket-tcp流程图1.创建服务器端创建服务器端Socket对象,指定:地址族,传输方式.绑定ip地址和端口号.设置监听.范围:1~</div> </li> <li><a href="/article/1830851083833012224.htm" title="Docker网络模式:深度理解与容器网络配置" target="_blank">Docker网络模式:深度理解与容器网络配置</a> <span class="text-muted">隔窗听雨眠</span> <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a> <div>Docker的网络模式是容器化应用中一个关键而复杂的方面。本文将深入讨论Docker的网络模式,包括基本概念、常用网络模式以及高级网络配置,并通过更为丰富和实际的示例代码,帮助读者全面掌握如何理解和配置容器网络。Docker网络基础1Docker默认网络Docker提供了三种默认的网络驱动:bridge、host和none。这些驱动在不同场景下有各自的优劣。示例代码:创建使用默认bridge网络的</div> </li> <li><a href="/article/1830467154751877120.htm" title="架构设计(13)安全架构设计理论" target="_blank">架构设计(13)安全架构设计理论</a> <span class="text-muted">CoderIsArt</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E7%A0%94%E7%A9%B6/1.htm">架构设计研究</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>网络安全设计网络安全架构设计是为了保护信息系统免受各种网络攻击和威胁而进行的系统化设计。它涉及设计网络基础设施、配置安全控制、制定安全策略,以及实施和维护这些策略,以确保数据的机密性、完整性和可用性。下面是网络安全架构设计的详细内容,包括关键组件、设计原则和实际案例。1.网络安全架构设计的关键组件1.1网络边界保护防火墙:用于过滤网络流量,根据设定的安全规则允许或阻止数据包进入或离开网络。分为传统</div> </li> <li><a href="/article/1830407032658817024.htm" title="网络基础Linux 常用Ping命令详解" target="_blank">网络基础Linux 常用Ping命令详解</a> <span class="text-muted">思静语</span> <a class="tag" taget="_blank" href="/search/Linux%26amp%3B%E8%BF%90%E7%BB%B4%E5%AE%89%E8%A3%85/1.htm">Linux&运维安装</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/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/linux/1.htm">linux</a> <div>文章目录Linux常用ping命令详解ping用法1.在Windows操作系统下:2.在Unix/Linux和macOS操作系统下:ping命令参数ping的原理是什么ping和ICMP的关系网络基础Ping命令详解(使用Ping这命令来测试网络连通)Linux常用ping命令详解概述不管在windows平台,还是在linux平台,ping都是非常常用的网络命令;ping命令通过ICMP(Inte</div> </li> <li><a href="/article/1830326734927523840.htm" title="重头开始嵌入式第二十八天(Linux系统编程 网络通信 套接字)" target="_blank">重头开始嵌入式第二十八天(Linux系统编程 网络通信 套接字)</a> <span class="text-muted">FLPGYH</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>目录1.网络编程1.OSI(OpenSystemInterconnection)模型即开放式系统互联通信参考模型。TFTP(TrivialFileTransferProtocol)即简单文件传输协议。2.TCP/IP模型也叫网际互联模型共分为4层:也叫协议栈3、TCP/IP协议族:4.DNS(DomainNameSystem,域名系统)是互联网的一项重要服务。4、网络基础(ABCDE类)5.网络相</div> </li> <li><a href="/article/1829555276093681664.htm" title="DDoS攻击与机房带宽占用详解" target="_blank">DDoS攻击与机房带宽占用详解</a> <span class="text-muted">群联云防护小杜</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98%E6%B1%87%E6%80%BB/1.htm">安全问题汇总</a><a class="tag" taget="_blank" href="/search/ddos/1.htm">ddos</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/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>摘要本文将深入探讨分布式拒绝服务(DDoS)攻击是如何占用数据中心(通常称为“机房”)的网络带宽资源的。我们将从技术角度出发,通过具体的案例和代码示例来说明这一过程,并提出一些缓解策略。1.引言DDoS攻击是通过大量恶意流量淹没目标服务器或网络基础设施,导致合法用户无法访问服务的一种攻击方式。这类攻击往往利用僵尸网络或其他手段生成大量的数据包,消耗掉目标机房的可用带宽资源,从而造成服务中断。2.D</div> </li> <li><a href="/article/1829097560552337408.htm" title="Qt 爬取网页信息" target="_blank">Qt 爬取网页信息</a> <span class="text-muted">Qt历险记</span> <a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E7%BA%A7%E5%BC%80%E5%8F%91%E5%B7%A5%E7%A8%8B%E5%B8%88/1.htm">高级开发工程师</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>QuestionQt爬取网页信息Answer学习如何使用Qt爬取网页信息的学习路线可以分为以下几个阶段:1.基础知识准备C++编程基础:Qt主要使用C++,因此需要有扎实的C++编程基础。网络编程基础:了解HTTP协议、TCP/IP等网络基础知识。HTML/CSS/JavaScript基础:了解网页的基本结构和内容。2.学习Qt框架Qt基础:学习Qt的基本概念,如信号与槽、事件处理、界面布局等。Q</div> </li> <li><a href="/article/1827773921311682560.htm" title="网络基础之静态路由(Static routing)理论基础及华为ENSP基础配置" target="_blank">网络基础之静态路由(Static routing)理论基础及华为ENSP基础配置</a> <span class="text-muted">小白学网络</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E4%BA%92%E8%81%94/1.htm">网络互联</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E9%80%9A%E4%BF%A1/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><a class="tag" taget="_blank" href="/search/%E8%B7%AF%E7%94%B1%E5%99%A8/1.htm">路由器</a><a class="tag" taget="_blank" href="/search/%E4%BA%A4%E6%8D%A2%E6%9C%BA/1.htm">交换机</a> <div>网络基础之静态路由理论基础一、静态路由的引入IP路由基础以太网交换机工作在数据链路层,用于在网络内进行数据转发。而企业网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发。自治系统(AS)是由同一个管理机构管理、使用统一路由策略的路由器的集合。一般地我们可以把一个企业网络认为是一个自治系统AS(Autonomou</div> </li> <li><a href="/article/1827532305250480128.htm" title="C++网络基础知识面试题2" target="_blank">C++网络基础知识面试题2</a> <span class="text-muted">dvlinker</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B%E4%B8%8E%E7%BD%91%E7%BB%9C%E9%97%AE%E9%A2%98%E5%88%86%E4%BA%AB/1.htm">网络编程与网络问题分享</a><a class="tag" taget="_blank" href="/search/TCPIP/1.htm">TCPIP</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%9F%A5%E8%AF%86/1.htm">网络知识</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%91%BD%E4%BB%A4/1.htm">网络命令</a><a class="tag" taget="_blank" href="/search/%E6%8A%93%E5%8C%85%E5%B7%A5%E5%85%B7/1.htm">抓包工具</a> <div>目录1、使用TCP的常见协议有哪些?使用UDP的常见协议有哪些?简单说几个2、如何判断访问目标地址的网络是通的?如何简单地查看到目标地址的网络是否有丢包和抖动?3、如果知道目标服务器的服务端口有没有开启?4、如何查看网卡上的地址配置信息?如何刷新系统DNS缓存?5、使用哪个命令查看本机的网络连接及端口信息?6、在Windows系统中如何查看系统路由表?Windows系统中有两张网卡,如何解决访问内</div> </li> <li><a href="/article/1827502673600016384.htm" title="HCIA大纲" target="_blank">HCIA大纲</a> <span class="text-muted">[禾火]</span> <a class="tag" taget="_blank" href="/search/HCIA/1.htm">HCIA</a><a class="tag" taget="_blank" href="/search/HCAI/1.htm">HCAI</a> <div>HCIA是华为体系下的一个初级网络工程师(扫盲)第一天:网络基础第二天:网络的体系第三天:ENSP第四天:静态路由第五到六天:动态路由第七天:交换(VLAN)</div> </li> <li><a href="/article/1769804758777921536.htm" title="运维面试题(网络基础、系统管理)" target="_blank">运维面试题(网络基础、系统管理)</a> <span class="text-muted">王尼码</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/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/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>目录网络基础类1、简述ISO/OSI七层模型的==分层与作用==相关-==TCP/IP四(五)层==模型与作用?2、简述TCP三次握手的过程相关-简述四次挥手的过程3、172.22.141.231/26,该IP位于哪个网段?该网段拥有多少可用IP地址?广播地址是什么?系统管理1、权限优化相关-用户user1,对/testdir目录有写和执行权限时,该目录下的只读文件file1是否可修改和删除?2、</div> </li> <li><a href="/article/1769049252325031936.htm" title="嵌入式驱动学习第三周——Linux网络基础调试命" target="_blank">嵌入式驱动学习第三周——Linux网络基础调试命</a> <span class="text-muted">亭墨</span> <a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E9%A9%B1%E5%8A%A8%E5%AD%A6%E4%B9%A0/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/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/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/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>前言  这篇博客来一起学习一下如何分析网络问题。  嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦!目录前言网络配置ip指令使用查看网络配置和状态其他指令套接字信息协议栈统计信息协议栈信息ss的其他常用指令网络吞吐查看网络接口统计信息查看带宽连通性和延时参考资料</div> </li> <li><a href="/article/96.htm" title="怎么样才能成为专业的程序员?" target="_blank">怎么样才能成为专业的程序员?</a> <span class="text-muted">cocos2d-x小菜</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>  如何要想成为一名专业的程序员?仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。   关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为</div> </li> <li><a href="/article/223.htm" title="java web开发 高并发处理" target="_blank">java web开发 高并发处理</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E5%B9%B6%E5%8F%91/1.htm">并发</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a><a class="tag" taget="_blank" href="/search/%E5%A4%84%E7%90%86/1.htm">处理</a><a class="tag" taget="_blank" href="/search/%E9%AB%98/1.htm">高</a> <div>java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(</div> </li> <li><a href="/article/350.htm" title="mysql批量更新" target="_blank">mysql批量更新</a> <span class="text-muted">ekian</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>mysql更新优化: 一版的更新的话都是采用update set的方式,但是如果需要批量更新的话,只能for循环的执行更新。或者采用executeBatch的方式,执行更新。无论哪种方式,性能都不见得多好。 三千多条的更新,需要3分多钟。 查询了批量更新的优化,有说replace into的方式,即: replace into tableName(id,status) values</div> </li> <li><a href="/article/477.htm" title="微软BI(3)" target="_blank">微软BI(3)</a> <span class="text-muted">18289753290</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E8%BD%AFBI+SSIS/1.htm">微软BI SSIS</a> <div>1) Q:该列违反了完整性约束错误;已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'FZCHID',表 'JRB_EnterpriseCredit.dbo.QYFZCH';列不允许有 Null 值。INSERT 失败。”。 A:一般这类问题的存在是 </div> </li> <li><a href="/article/604.htm" title="Java中的List" target="_blank">Java中的List</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>        List是一个有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。         与 set 不同,列表通常允许重复</div> </li> <li><a href="/article/731.htm" title="读书笔记" target="_blank">读书笔记</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a> <div>   1.  K是一家加工厂,需要采购原材料,有A,B,C,D 4家供应商,其中A给出的价格最低,性价比最高,那么假如你是这家企业的采购经理,你会如何决策?          传统决策: A:100%订单  B,C,D:0%     &nbs</div> </li> <li><a href="/article/858.htm" title="centos 安装 Codeblocks" target="_blank">centos 安装 Codeblocks</a> <span class="text-muted">随便小屋</span> <a class="tag" taget="_blank" href="/search/codeblocks/1.htm">codeblocks</a> <div>1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum install gcc-c++   2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.yum install gtk2* 3. 安装wxGTK    yum search w</div> </li> <li><a href="/article/985.htm" title="23种设计模式的形象比喻" target="_blank">23种设计模式的形象比喻</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory   工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:</div> </li> <li><a href="/article/1112.htm" title="开发管理 CheckLists" target="_blank">开发管理 CheckLists</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E7%AE%A1%E7%90%86+CheckLists/1.htm">开发管理 CheckLists</a> <div>开发管理 CheckLists(23) -使项目组度过完整的生命周期 开发管理 CheckLists(22) -组织项目资源 开发管理 CheckLists(21) -控制项目的范围开发管理 CheckLists(20) -项目利益相关者责任开发管理 CheckLists(19) -选择合适的团队成员开发管理 CheckLists(18) -敏捷开发 Scrum Master 工作开发管理 C</div> </li> <li><a href="/article/1239.htm" title="js实现切换" target="_blank">js实现切换</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E6%A0%8F%E7%9B%AE%E5%88%87%E6%8D%A2/1.htm">栏目切换</a> <div>js主要功能之一就是实现页面的特效,窗体的切换可以减少页面的大小,被门户网站大量应用思路: 1,先将要显示的设置为display:bisible 否则设为none 2,设置栏目的id ,js获取栏目的id,如果id为Null就设置为显示 3,判断js获取的id名字;再设置是否显示   代码实现:   html代码: <di</div> </li> <li><a href="/article/1366.htm" title="周鸿祎在360新员工入职培训上的讲话" target="_blank">周鸿祎在360新员工入职培训上的讲话</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%82%9F/1.htm">感悟</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E7%94%9F/1.htm">人生</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA/1.htm">职场</a> <div>        这篇文章也是最近偶尔看到的,考虑到原博客发布者可能将其删除等原因,也更方便个人查找,特将原文拷贝再发布的。“学东西是为自己的,不要整天以混的姿态来跟公司博弈,就算是混,我觉得你要是能在混的时间里,收获一些别的有利于人生发展的东西,也是不错的,看你怎么把握了”,看了之后,对这句话记忆犹新。  &</div> </li> <li><a href="/article/1493.htm" title="前端Web开发的页面效果" target="_blank">前端Web开发的页面效果</a> <span class="text-muted">Bill_chen</span> <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/Microsoft/1.htm">Microsoft</a> <div>1.IE6下png图片的透明显示: <img src="图片地址" border="0" style="Filter.Alpha(Opacity)=数值(100),style=数值(3)"/> 或在<head></head>间加一段JS代码让透明png图片正常显示。 2.<li>标</div> </li> <li><a href="/article/1620.htm" title="【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)" target="_blank">【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">垃圾回收</a> <div>  CMS概述 并发标记清理垃圾回收(Concurrent Mark and Sweep GC)算法的主要目标是在GC过程中,减少暂停用户线程的次数以及在不得不暂停用户线程的请夸功能,尽可能短的暂停用户线程的时间。这对于交互式应用,比如web应用来说,是非常重要的。   CMS垃圾回收针对新生代和老年代采用不同的策略。相比同吞吐量垃圾回收,它要复杂的多。吞吐量垃圾回收在执</div> </li> <li><a href="/article/1747.htm" title="Struts2技术总结" target="_blank">Struts2技术总结</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a> <div>  必备jar文件 早在struts2.0.*的时候,struts2的必备jar包需要如下几个: commons-logging-*.jar   Apache旗下commons项目的log日志包 freemarker-*.jar          </div> </li> <li><a href="/article/1874.htm" title="Jquery easyui layout应用注意事项" target="_blank">Jquery easyui layout应用注意事项</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/layout/1.htm">layout</a> <div>在jquery easyui中提供了easyui-layout布局,他的布局比较局限,类似java中GUI的border布局。下面对其使用注意事项作简要介绍:      如果在现有的工程中前台界面均应用了jquery easyui,那么在布局的时候最好应用jquery eaysui的layout布局,否则在表单页面(编辑、查看、添加等等)在不同的浏览器会出</div> </li> <li><a href="/article/2001.htm" title="java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?" target="_blank">java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class CopySpecialLinkedList { /** * 题目:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表? 拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。 假设原来链表为A1 -> A2 ->... -> An,新拷贝</div> </li> <li><a href="/article/2128.htm" title="color" target="_blank">color</a> <span class="text-muted">Chen.H</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/css/1.htm">css</a> <div><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">    <HTML>    <HEAD>&nbs</div> </li> <li><a href="/article/2255.htm" title="[信息与战争]移动通讯与网络" target="_blank">[信息与战争]移动通讯与网络</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>      两个坚持:手机的电池必须可以取下来                光纤不能够入户,只能够到楼宇       建议大家找这本书看看:<&</div> </li> <li><a href="/article/2382.htm" title="oracle flashback query(闪回查询)" target="_blank">oracle flashback query(闪回查询)</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/flashback+query/1.htm">flashback query</a><a class="tag" taget="_blank" href="/search/flashback+table/1.htm">flashback table</a> <div>在Oracle 10g中,Flash back家族分为以下成员: Flashback Database Flashback Drop Flashback Table Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query) 下面介绍一下Flashback Drop 和Flas</div> </li> <li><a href="/article/2509.htm" title="zeus持久层DAO单元测试" target="_blank">zeus持久层DAO单元测试</a> <span class="text-muted">deng520159</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>zeus代码测试正紧张进行中,但由于工作比较忙,但速度比较慢.现在已经完成读写分离单元测试了,现在把几种情况单元测试的例子发出来,希望有人能进出意见,让它走下去. 本文是zeus的dao单元测试: 1.单元测试直接上代码   package com.dengliang.zeus.webdemo.test; import org.junit.Test; import o</div> </li> <li><a href="/article/2636.htm" title="C语言学习三printf函数和scanf函数学习" target="_blank">C语言学习三printf函数和scanf函数学习</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/printf/1.htm">printf</a><a class="tag" taget="_blank" href="/search/scanf/1.htm">scanf</a><a class="tag" taget="_blank" href="/search/language/1.htm">language</a> <div>printf函数 /* 2013年3月10日20:42:32 地点:北京潘家园 功能: 目的: 测试%x %X %#x %#X的用法 */ # include <stdio.h> int main(void) { printf("哈哈!\n"); // \n表示换行 int i = 10; printf</div> </li> <li><a href="/article/2763.htm" title="那你为什么小时候不好好读书?" target="_blank">那你为什么小时候不好好读书?</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/life/1.htm">life</a> <div>dady, 我今天捡到了十块钱, 不过我还给那个人了 good girl! 那个人有没有和你讲thank you啊 没有啦....他拉我的耳朵我才把钱还给他的, 他哪里会和我讲thank you   爸爸, 如果地上有一张5块一张10块你拿哪一张呢.... 当然是拿十块的咯... 爸爸你很笨的, 你不会两张都拿   爸爸为什么上个月那个人来跟你讨钱, 你告诉他没</div> </li> <li><a href="/article/2890.htm" title="iptables开放端口" target="_blank">iptables开放端口</a> <span class="text-muted">Fanyucai</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/iptables/1.htm">iptables</a><a class="tag" taget="_blank" href="/search/%E7%AB%AF%E5%8F%A3/1.htm">端口</a> <div>1,找到配置文件 vi /etc/sysconfig/iptables   2,添加端口开放,增加一行,开放18081端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 18081 -j ACCEPT   3,保存 ESC :wq!   4,重启服务 service iptables </div> </li> <li><a href="/article/3017.htm" title="Ehcache(05)——缓存的查询" target="_blank">Ehcache(05)——缓存的查询</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F/1.htm">排序</a><a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E8%AE%A1/1.htm">统计</a><a class="tag" taget="_blank" href="/search/query/1.htm">query</a> <div>缓存的查询 目录 1.    使Cache可查询 1.1     基于Xml配置 1.2     基于代码的配置 2     指定可搜索的属性 2.1     可查询属性类型 2.2 &</div> </li> <li><a href="/article/3144.htm" title="通过hashset找到数组中重复的元素" target="_blank">通过hashset找到数组中重复的元素</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/hashset/1.htm">hashset</a> <div>  如何在hashset中快速找到重复的元素呢?方法很多,下面是其中一个办法: int[] array = {1,1,2,3,4,5,6,7,8,8}; Set<Integer> set = new HashSet<Integer>(); for(int i = 0</div> </li> <li><a href="/article/3271.htm" title="使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL" target="_blank">使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL</a> <span class="text-muted">lanrikey</span> <a class="tag" taget="_blank" href="/search/history/1.htm">history</a> <div>后退时关闭当前页面 <script type="text/javascript"> jQuery(document).ready(function ($) {         if (window.history && window.history.pushState) {</div> </li> <li><a href="/article/3398.htm" title="应用程序的通信成本" target="_blank">应用程序的通信成本</a> <span class="text-muted">netkiller.github.com</span> <a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E9%99%88%E6%99%AF%E5%B3%B0/1.htm">陈景峰</a><a class="tag" taget="_blank" href="/search/netkiller/1.htm">netkiller</a><a class="tag" taget="_blank" href="/search/neo/1.htm">neo</a> <div>应用程序的通信成本 什么是通信 一个程序中两个以上功能相互传递信号或数据叫做通信。 什么是成本 这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间是指传递过程耗费容量大小。 都有哪些通信方式 全局变量 线程间通信 共享内存 共享文件 管道 Socket 硬件(串口,USB) 等等 全局变量 全局变量是成本最低通信方法,通过设置</div> </li> <li><a href="/article/3525.htm" title="一维数组与二维数组的声明与定义" target="_blank">一维数组与二维数组的声明与定义</a> <span class="text-muted">恋洁e生</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a><a class="tag" taget="_blank" href="/search/%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">一维数组</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E4%B9%89/1.htm">定义</a><a class="tag" taget="_blank" href="/search/%E5%A3%B0%E6%98%8E/1.htm">声明</a><a class="tag" taget="_blank" href="/search/%E5%88%9D%E5%A7%8B%E5%8C%96/1.htm">初始化</a> <div>/**  *  */ package test20111005; /**  * @author FlyingFire  * @date:2011-11-18 上午04:33:36  * @author :代码整理  * @introduce :一维数组与二维数组的初始化  *summary:  */ public c</div> </li> <li><a href="/article/3652.htm" title="Spring Mybatis独立事务配置" target="_blank">Spring Mybatis独立事务配置</a> <span class="text-muted">toknowme</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>在项目中有很多地方会使用到独立事务,下面以获取主键为例   (1)修改配置文件spring-mybatis.xml  <!-- 开启事务支持 -->  <tx:annotation-driven transaction-manager="transactionManager" />   &n</div> </li> <li><a href="/article/3779.htm" title="更新Anadroid SDK Tooks之后,Eclipse提示No update were found" target="_blank">更新Anadroid SDK Tooks之后,Eclipse提示No update were found</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>使用Android SDK Manager 更新了Anadroid SDK Tooks 之后, 打开eclipse提示 This Android SDK requires Android Developer Toolkit version 23.0.0 or above, 点击Check for Updates  检测一会后提示 No update were found  </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>