HTTP详解(2)-请求、响应、缓存


     

1. HTTP请求格式      

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

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

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

  请求头(Request Header)

 

 请求正文

下面是一个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
以上代码中“ GET”代表请求方法,“//ndex.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  所有内容都不会被缓存

2. 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> <h3><span style="color:#3333ff;">1、状态行</span></h3> <p><span></span>       状态行由协议版本、数字形式的状态代码,及相应的状态描述组成,各元素之间以空格分隔,结尾时回车换行符,格式如下:</p> <p><span></span>HTTP-Version Status-Code Reason-Phrase CRLF</p> <p><span></span>HTTP-Version 表示服务器 HTTP 协议的版本,Status-Code 表示服务器发回的响应代码,Reason-Phrase 表示状态代码的文本描述,CRLF 表示回车换行。例如:</p> <p><span></span>HTTP/1.1 200 OK (CRLF)</p> <p><strong>      状态代码与状态描述</strong></p> <p><span></span>      状态代码由 3 位数字组成, 表示请求是否被理解或被满足,状态描述给出了关于状态码的简短的文字描述。状态码的第一个数字定义了响应类别,后面两位数字没有具体分<span style="color:#ff0000;">类。第一个数字有 5 种取值,如下所示。</span></p> <ul> <li><span style="color:#ff0000;">1xx:指示信息——表示请求已经接受,继续处理</span></li> <li><span style="color:#ff0000;">2xx:成功——表示请求已经被成功接收、理解、接受。</span></li> <li><span style="color:#ff0000;">3xx:重定向——要完成请求必须进行更进一步的操作</span></li> <li><span style="color:#ff0000;">4xx:客户端错误——客户端请求有错误或请求无法实现</span></li> <li><span style="color:#ff0000;">5xx:服务器端错误——服务器未能实现合法的请求。</span></li> </ul> <p><span style="color:#ff0000;">常见状态代码、状态描述、说明:<br> 200 OK      //客户端请求成功</span></p> <p><span style="color:#ff0000;">303:</span><span style="color:#3333ff;">重定向,即从原url重定向到新的url。 例如php 的hear函数header("localtion:/index.php")</span></p> <p><span style="color:#ff0000;">400 Bad Request </span><span style="color:#3333ff;"> //客户端请求有语法错误,不能被服务器所理解</span><br><span style="color:#ff0000;">401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 </span><br><span style="color:#ff0000;">403 Forbidden  //服务器收到请求,但是拒绝提供服务,一般是服务器路径没有权限或者是其他权限相关问题</span><br><span style="color:#ff0000;">404 Not Found  //请求资源不存在,eg:输入了错误的URL</span><br><span style="color:#ff0000;">500 Internal Server Error </span><span style="color:#3333ff;">//服务器发生不可预期的错误:<span style="font-family:arial, '宋体', sans-serif;line-height:24px;text-indent:28px;"><span style="font-size:12px;">一般来说,这个问题都会在服务器端的源代码出现错误时出现,比如出现死循环。</span></span></span></p> <p><span style="color:#ff0000;"><span>502 </span></span><span style="font-family:'Microsoft YaHei', SimHei, Verdana;line-height:20px;"><span style="font-size:12px;color:#ff0000;">Bad Gateway</span></span><span style="color:#3333ff;"><span style="font-size:12px;">/</span>/<span style="font-family:arial, '宋体', sans-serif;line-height:24px;text-indent:28px;"><span style="font-size:12px;">作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。比如LNMP ,php-fpm没有启动就会报502错误。</span></span></span><br></p> <p><span style="color:#ff0000;">503 Server Unavailable  </span><span style="color:#3333ff;">//服务器当前不能处理客户端的请求,一段时间后可能恢复正常,比如java 容器部署war的时候,就出现503, <br>                                            或者是nginx处理的文件没有权限。<br></span></p> <p><span style="color:#3333ff;"><br></span></p> <p><span style="color:#ff0000;">504 Gateway Time-out:</span><span style="color:#3333ff;">作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应,</span><span style="color:#ff6600;"><strong>比如nginx和php-fpm, php设置sleep(200),就会收到504 Gateway Time-out。</strong></span><span style="color:#3333ff;">注意:某些代理服务器在DNS查询超时时会返回400或者500错误</span><br></p> <p><br></p> <h3><span style="color:#3333ff;">2、响应正文</span></h3> <p>响应正文就是服务器返回的资源的内容,响应头和正文之间也必须用空行分隔<span style="font-size:12pt;">。如:</span></p> <p><span style="font-size:12pt;"></span></p> <pre><code class="language-html"><html> <head> <title>HTTP响应示例<title> </head> <body> Hello HTTP! </body> </html></code></pre> <h3><span style="color:#3333ff;">3 、响应头信息</span></h3> <p><span style="font-size:16px;"><span style="font-size:12px;">HTTP最常见的响应头如下所示:</span></span></p> <h4>Cache头域</h4> <blockquote> <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>Cookie/Login 头域</h4> <blockquote> <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>Entity实体头域:</h4> <p><strong>            实体内容的属性,包括实体信息类型,长度,压缩方法,最后一次修改时间,数据有效性等。</strong></p> <blockquote> <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>Miscellaneous 头域</h4> <blockquote> <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>Transport头域</h4> <blockquote> <p><strong>Connection:</strong></p> <p>例如: Connection: keep-alive   当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接</p> <p>例如:  Connection: close  代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。</p> </blockquote> <h4>Location头域</h4> <blockquote> <p><strong>Location:</strong></p> <p>作用: 用于重定向一个新的位置, 包含新的URL地址</p> <p>实例请看304状态实例</p> </blockquote> <h3><span>HTTP协议是无状态的和Connection: keep-alive的区别</span></h3> <p>  无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。</p> <p>  HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。</p> <p>  从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。</p> <p>  Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。</p> <p> </p> <h2 class="headline-1 bk-sidecatalog-title" style="border-bottom:rgb(222,223,225) 1px solid;clear:both;"> <span style="color:#3333ff;"><span style="line-height:36px;font-size:22px;">3. 浏览器缓存</span>      </span></h2> <p>          </p> <p>       浏览器缓存:包括页面html缓存和图片js,css等资源的缓存。如下图,浏览器缓存是基于把页面信息保存到用户本地电脑硬盘里。</p> <p>        </p> <p><br></p> <p></p> <h3 style="font-size:17px;color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;"> <span style="font-size:16px;">1、缓存的优点:</span></h3> <p></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span style="font-size:16px;">   </span><span><span style="font-size:12px;">  1)服务器<span>响应更快</span>:因为请求从缓存服务器(离客户端更近)而不是源服务器被相应,这个过程耗时更少,让服务器看上去响应更快。</span></span></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span><span style="font-size:12px;">     2)<span>减少网络带宽消耗</span>:当副本被重用时会减低客户端的带宽消耗;客户可以节省带宽费用,控制带宽的需求的增长并更易于管理。</span></span></p> <h3>1、缓存工作原理</h3> <p>       页面缓存状态是由http header决定的,一个浏览器请求信息,一个是服务器响应信息。主要包括Pragma: no-cache、Cache-Control、 Expires、 Last-Modified、If-Modified-Since。其中Pragma: no-cache由HTTP/1.0规定,Cache-Control由HTTP/1.1规定。</p> <p>       工作原理图:</p> <p></p> <p> </p> <p>从图中我们可以看到原理主要分三步:</p> <ol> <li>第一次请求:浏览器通过http的header报头,附带Expires,Cache-Control,Last-Modified/Etag向服务器请求,此时服务器记录第一次请求的Last-Modified/Etag                  </li> <li>再次请求:当浏览器再次请求的时候,请求头附带Expires,Cache-Control,If-Modified-Since/Etag向服务器请求</li> <li>服务器根据第一次记录的Last-Modified/Etag和再次请求的If-Modified-Since/Etag做对比,判断是否需要更新<span style="font-size:12px;">,<span style="font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;color:#393939;line-height:24px;">服务器通过这两个头判断本地资源未发生变化,客 户端不需要重新下载,<strong>返回304响应。常见流程如下图所示</strong>:</span></span></li> </ol> <div> <span style="font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;font-size:12px;color:#393939;"><span style="line-height:24px;"><br></span></span> </div> <div> <span style="font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;font-size:12px;color:#393939;"><span style="line-height:24px;"><br></span></span> </div> <p><br></p> <h3 style="font-size:17px;color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;"> <span style="font-size:16px;">与缓存相关的HTTP扩展消息头</span></h3> <p></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span style="font-size:16px;">  </span><span><span style="font-size:12px;">  <span>Expires</span>:设置页面过期时间,格林威治时间GMT</span></span></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span style="font-size:12px;">    <span>Cache-Control</span>:更细致的控制缓存的内容</span></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span style="font-size:12px;">    <span>Last-Modified</span>:请求对象最后一次的修改时间 用来判断缓存是否过期 通常由文件的时间信息产生 </span></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span><span style="font-size:12px;">    <span> ETag</span>:响应中资源的校验值,在服务器上某个时段是唯一标识的。ETag是一个可以 与Web资源关联的记号(token),和Last-Modified功能才不多,也是一个标识符,一般和Last-Modified一起使用,加强服务器判断的准确度。</span></span></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span><span style="font-size:12px;">    <span> Date</span>:服务器的时间</span></span></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span><span style="font-size:12px;">    <span> If-Modified-Since</span>:客户端存取的该资源最后一次修改的时间,用来和服务器端的Last-Modified做比较</span></span></p> <p style="color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;line-height:21px;"> <span><span style="font-size:12px;">    <span> If-None-Match</span>:客户端存取的该资源的检验值,同ETag。</span></span></p> <p>Cache-Control的主要参数 <br>       Cache-Control: private/public Public 响应会被缓存,并且在多用户间共享。 Private 响应只能够作为私有的缓存,不能再用户间共享。<br>       Cache-Control: no-cache:不进行缓存 <br>       Cache-Control: max-age=x:缓存时间 以秒为单位 <br>       Cache-Control: must-revalidate:如果页面是过期的 则去服务器进行获取。</p> <p><br></p> <p>我们nginx测试:</p> <p>server {<br>         listen       8081;<br>         server_name  10.163.1.175;<br>         if ($host != 'www.test1.com' ) {<br>             #rewrite ^/(.*)$ http://www.test1.com/$1 permanent;<br>         }<br>         index index.html index.htm index.php;<br>         root  /home/www/app/;<br><br><br>         access_log  /mnt/app/nginx/logs/test1.home.log  main;<br><br><br>         location ~ .*\.zip?$<br>         {<br>                access_log off;<br>         }<br>         location ~ .*\.txt?$ {<br>                 access_log off;<br>         }<br><br><br>         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$<br>         {<br>                 expires      30d;<br>         }<br><br><br>         location ~ .*\.(js|css|zip)?$<br>         {<br>                 expires      12h;<br>         }<br><br><br><br><br>         if (!-e $request_filename) {<br>             rewrite ^/(.+)$ /index.php?url=$1 last;<br>             break;<br>         }<br><br><br>         location ~ .*\.(php|php5)?$<br>         {<br>                 #fastcgi_pass  unix:/tmp/php-cgi.sock;<br>                 fastcgi_pass 127.0.0.1:9000;<br>                 fastcgi_index index.php;<br>                 include fastcgi.conf;<br>                 add_header Content-Type text/html;<br>         }<br> }<br></p> <p>然后我们代理两个域名指向同一个端口:</p> <p>server {<br>     listen  80;<br>     server_name   www.test1.com  test1.com;<br><br><br>     location / {<br>         proxy_pass         http://127.0.0.1:8081;<br>         proxy_set_header   Host             $host;<br>         proxy_set_header   X-Real-IP        $remote_addr;<br>         proxy_set_header   X-Forward-For    $proxy_add_x_forwarded_for;<br>         proxy_set_header Access-Control-Allow-Origin *;<br>         proxy_next_upstream http_502 http_504 error timeout invalid_header;<br>     }<br> }<br> server {<br>     listen  80;<br>     server_name   www.test2.com  test2.com;<br><br><br>     location / {<br>         proxy_pass         http://127.0.0.1:8081;<br>         proxy_set_header   Host             $host;<br>         proxy_set_header   X-Real-IP        $remote_addr;<br>         proxy_set_header   X-Forward-For    $proxy_add_x_forwarded_for;<br>         proxy_set_header Access-Control-Allow-Origin *;<br>         proxy_next_upstream http_502 http_504 error timeout invalid_header;<br>     }<br> }<br></p> <p><br></p> <p>我们访问www.test2.com,直接指向www.test1.com,http是304响应。</p> <p><br></p> <p>当我们把8081端口的配置去掉</p> <p>        if ($host != 'www.test1.com' ) {<br>             #rewrite ^/(.*)$ http://www.test1.com/$1 permanent;<br>         }<br>    重启nginx,同一个访问www.test2.com,发现还是直接跳转到www.test1.com。</p> <p>这是因为浏览器304缓存的问题。我们直接使用新浏览器访问,就直接访问就不会跳转啦。</p> <p><br></p> <p><br></p> <p>  </p> <p><br></p> <h3>2、关于图片,css,js,flash的缓存</h3> <p>这个主要通过服务器的配置来实现这个技术,如果使用apache服务器的话,可以使用<strong>mod_expires</strong>模块来实现:</p> <p><strong>编译mod_expires模块:</strong></p> <p>Cd  /root/httpd-2.2.3/modules/metadata</p> <p>/usr/local/apache/bin/apxs -i -a -c mod_expires.c //编译</p> <p>编辑httpd.conf配置:添加下面内容</p> <p><IfModule mod_expires.c></p> <p>ExpiresActive on</p> <p>ExpiresDefault "access plus 1 month"</p> <p>ExpiresByType text/html "access plus 1 months"</p> <p>ExpiresByType text/css "access plus 1 months"</p> <p>ExpiresByType image/gif "access plus 1 months"</p> <p>ExpiresByType image/jpeg "access plus 1 months"</p> <p>ExpiresByType image/jpg "access plus 1 months"</p> <p>ExpiresByType image/png "access plus 1 months"</p> <p>EXpiresByType application/x-shockwave-flash "access plus 1 months"</p> <p>EXpiresByType application/x-javascript      "access plus 1 months"</p> <p>#ExpiresByType video/x-flv "access plus 1 months"</p> <p></IfModule></p> <p>解释:第一句--开启服务</p> <p>第二句--默认时间是一个月</p> <p>在下面是关于各种类型的资源的缓存时间设置</p> <p><br></p> <p></p> <p>(缓存的部分修改自http://www.cnblogs.com/phphuaibei/archive/2011/09/27/2192817.html)  </p> <p><br></p> <p><br><br></p> <div class="shang_tit" style="font-family:Verdana;font-size:14px;line-height:19.0909px;"> <p style="color:rgb(255,255,255);font-size:16px;font-weight:bold;line-height:25px;text-align:center;"> 感谢您的支持,我会继续努力的! 扫码打赏,你说多少就多少</p> </div> <div class="shang_payimg" style="font-family:Verdana;font-size:14px;line-height:19.0909px;"> <img src="http://img.e-com-net.com/image/info8/25dd82be72124c579f071dbdbbdea2fc.jpg" alt="" width="0" height="0">          <img src="http://img.e-com-net.com/image/info8/cb6335ff831844c6920920e3af3d926a.jpg" alt="" width="0" height="0"> </div> <br> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1290221966241898496"></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/1949213278123126784.htm" title="3步掌握JMeter与Jenkins自动化性能测试!" target="_blank">3步掌握JMeter与Jenkins自动化性能测试!</a> <span class="text-muted">爱吃 香菜</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/jmeter/1.htm">jmeter</a><a class="tag" taget="_blank" href="/search/jenkins/1.htm">jenkins</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1942236423218327552.htm" title="Python训练营打卡 Day53" target="_blank">Python训练营打卡 Day53</a> <span class="text-muted">yunvwugua__</span> <a class="tag" taget="_blank" href="/search/python%E8%87%AA%E5%AD%A6%E6%89%93%E5%8D%A1/1.htm">python自学打卡</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>对抗生成网络知识点回顾:对抗生成网络的思想:关注损失从何而来生成器、判别器nn.sequential容器:适合于按顺序运算的情况,简化前向传播写法leakyReLU介绍:避免relu的神经元失活现象对抗生成网络(GAN)知识点回顾对抗生成网络的思想思想:就像在餐厅中,有一个厨师(生成器)负责制作假菜,一个评论家(判别器)负责区分真菜和假菜。厨师的目标是制作出评论家无法区分的假菜,而评论家的目标是找</div> </li> <li><a href="/article/1941385876982525952.htm" title="【Python训练营打卡】day33 @浙大疏锦行" target="_blank">【Python训练营打卡】day33 @浙大疏锦行</a> <span class="text-muted">2301_77865880</span> <a class="tag" taget="_blank" href="/search/MyPython%E8%AE%AD%E7%BB%83%E8%90%A5%E6%89%93%E5%8D%A1/1.htm">MyPython训练营打卡</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>DAY33简单的神经网络知识点回顾:1.PyTorch和cuda的安装2.查看显卡信息的命令行命令(cmd中使用)3.cuda的检查4.简单神经网络的流程a.数据预处理(归一化、转换成张量)b.模型的定义i.继承nn.Module类ii.定义每一个层iii.定义前向传播流程c.定义损失函数和优化器d.定义训练流程e.可视化loss过程预处理补充:注意事项:1.分类任务中,若标签是整数(如0/1/2</div> </li> <li><a href="/article/1939973683913224192.htm" title="Awesome-SIEMENS 西门子1847 学习视频整理" target="_blank">Awesome-SIEMENS 西门子1847 学习视频整理</a> <span class="text-muted">Z@=</span> <a class="tag" taget="_blank" href="/search/PLC/1.htm">PLC</a><a class="tag" taget="_blank" href="/search/%E5%8F%AF%E7%BC%96%E7%A8%8B%E6%8E%A7%E5%88%B6%E5%99%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/iot/1.htm">iot</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E7%A1%AC%E4%BB%B6/1.htm">智能硬件</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95/1.htm">学习方法</a><a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E6%9E%B6%E6%9E%84/1.htm">硬件架构</a> <div>基于西门子1847学习平台所整理的工业自动化相关学习视频,希望方便查找所需要资源,获取所需技能,由于时间有限,不定时但持续更新。想要交流或学习相关资源,请私信联系或微信PRE_ZHY联系,添加请注明西门子资源文章目录1.基础知识与技能1.1编程1.2网络知识1.3运动相关1.4其他知识2.硬件2.1PLC2.2变频驱动及伺服G120S120V20V90变频器故障及维护2.3工控机2.4电源2.5西</div> </li> <li><a href="/article/1937572335808737280.htm" title="网络安全 整体要求" target="_blank">网络安全 整体要求</a> <span class="text-muted">心 一</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/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> <div>网络安全是一个多领域交叉的行业,涵盖技术、管理、法律等多个层面。网络安全从业者需要掌握的核心职业技能点分为技术技能和软技能两大类:一、技术技能1.基础网络知识网络协议与架构:深入理解TCP/IP、HTTP/HTTPS、DNS、VPN、BGP等协议,熟悉OSI七层模型。网络设备配置:路由器、交换机、防火墙(如Cisco、PaloAlto、Fortinet)的配置与安全策略。流量分析:使用Wiresh</div> </li> <li><a href="/article/1937374111927955456.htm" title="计算机网络学习:打造体系,接轨前沿技术" target="_blank">计算机网络学习:打造体系,接轨前沿技术</a> <span class="text-muted">xiayan827</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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>引言在数字化浪潮席卷全球的当下,计算机网络已然成为推动社会发展、经济增长以及科技创新的关键力量。从日常生活中的便捷通信、在线购物,到工业领域的智能制造、远程协作,再到科研中的海量数据传输与分布式计算,计算机网络无处不在,深刻改变着我们的生活与工作模式。作为计算机网络专业的学生,在这个快速发展的领域中,我们肩负着理解、构建和创新网络技术的重任。计算机网络知识体系庞大且复杂,涵盖了从底层硬件通信到高层</div> </li> <li><a href="/article/1937373985612296192.htm" title="计算机网络学习:体系化学习助力能力提升" target="_blank">计算机网络学习:体系化学习助力能力提升</a> <span class="text-muted">xiayan827</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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>引言在数字化浪潮席卷全球的当下,计算机网络已然成为推动社会发展、经济增长以及科技创新的关键力量。从日常生活中的便捷通信、在线购物,到工业领域的智能制造、远程协作,再到科研中的海量数据传输与分布式计算,计算机网络无处不在,深刻改变着我们的生活与工作模式。作为计算机网络专业的学生,在这个快速发展的领域中,我们肩负着理解、构建和创新网络技术的重任。计算机网络知识体系庞大且复杂,涵盖了从底层硬件通信到高层</div> </li> <li><a href="/article/1930179460775079936.htm" title="python学习打卡day33" target="_blank">python学习打卡day33</a> <span class="text-muted">vijaycc</span> <a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0%E6%89%93%E5%8D%A1/1.htm">python学习打卡</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/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>DAY33简单的神经网络知识点回顾:PyTorch和cuda的安装查看显卡信息的命令行命令(cmd中使用)cuda的检查简单神经网络的流程数据预处理(归一化、转换成张量)模型的定义继承nn.Module类定义每一个层定义前向传播流程定义损失函数和优化器定义训练流程可视化loss过程预处理补充:注意事项:1.分类任务中,若标签是整数(如0/1/2类别),需转为long类型(对应PyTorch的tor</div> </li> <li><a href="/article/1928857879582928896.htm" title="常用的计算机网络设备有,常用网络设备有哪些,初学者必须要知道的五大网络设备..." target="_blank">常用的计算机网络设备有,常用网络设备有哪些,初学者必须要知道的五大网络设备...</a> <span class="text-muted">动画民工</span> <a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E7%9A%84%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E6%9C%89/1.htm">常用的计算机网络设备有</a> <div>在我们接触计算机的同时,网络知识也是必不可少的,搞懂网络我们先要认识这些网络设备,以及它们有什么作用。第一个:路由器(分无线跟有线路由器)如今家用一般都用的无线路由器(俗称WIFI),因为无线路由器都带有线功能,不过大型网络的核心路由器都不用无线的,路由器与其他设备最大的区别是既有WAN口,同时也有LAN口,而交换机的话只有LAN,有些光猫如果带路由功能的话那么它上面一定标有WAN口的。路由器的主</div> </li> <li><a href="/article/1928186705987301376.htm" title="测试面试题:微信发图片的测试用例" target="_blank">测试面试题:微信发图片的测试用例</a> <span class="text-muted">爱吃 香菜</span> <a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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/%E5%BE%AE%E4%BF%A1/1.htm">微信</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">面试题</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1927633346645520384.htm" title="网络知识:整理各种路由器组网方法!网跨段也能访问" target="_blank">网络知识:整理各种路由器组网方法!网跨段也能访问</a> <span class="text-muted">IT技术分享社区</span> <a class="tag" taget="_blank" href="/search/%E7%94%B5%E8%84%91%E6%8A%80%E5%B7%A7/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/%E7%BD%91%E5%85%B3/1.htm">网关</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>很多朋友问到,针对不同网段的两个电脑设备如何实现通信?这个通常在企业办公中会遇到,我们经常会遇到企业随着员工或部门的增多,增加了一个路由器,分了两个网段,A子网和B子网就处于不同网段,当网络中存在多个路由器时,要求不同路由器下属的子网可以互相通讯,同时又可以通过宽带路由器上网,今天给大家讲解一下相关的案例以及解决方案。案例情景1企业通过一台路由器R1上网,局域网LAN1,。因为业务需要,扩充了一台</div> </li> <li><a href="/article/1926835691078086656.htm" title="运维面试准备(一)" target="_blank">运维面试准备(一)</a> <span class="text-muted">开挖掘机上班</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/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/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>文章目录@[TOC](文章目录)运维面试准备常见岗位要求windows系统相关windows下使用wgetlinux常用命令1.查看日志2.文件用户所属组及权限3.进程相关4.磁盘相关5.解压缩文件6.删除文件7.查找8.查看端口号9.crontab的使用10.远程拷贝运维面试准备常见岗位要求1.熟悉windows系统、熟悉linux系统知识及常用命令2.了解网络知识,熟悉常见网络设备,如路由器、</div> </li> <li><a href="/article/1925388891863445504.htm" title="5.22打卡" target="_blank">5.22打卡</a> <span class="text-muted">丁值心</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%B0%8F%E7%99%BD%E4%BB%8E0%E5%88%B01/1.htm">机器学习小白从0到1</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</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/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA/1.htm">支持向量机</a> <div>@浙大疏锦行DAY33简单的神经网络知识点回顾:1.PyTorch和cuda的安装2.查看显卡信息的命令行命令(cmd中使用)3.cuda的检查4.简单神经网络的流程a.数据预处理(归一化、转换成张量)b.模型的定义i.继承nn.Module类ii.定义每一个层iii.定义前向传播流程c.定义损失函数和优化器d.定义训练流程e.可视化loss过程预处理补充:注意事项:1.分类任务中,若标签是整数(</div> </li> <li><a href="/article/1925281354665226240.htm" title="软件测试工程师如何开展单元测试?" target="_blank">软件测试工程师如何开展单元测试?</a> <span class="text-muted">软件测试君</span> <a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><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/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/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/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E6%89%BE%E5%B7%A5%E4%BD%9C/1.htm">找工作</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1924753687457099776.htm" title="35岁危机提前到25岁?这届年轻人正在经历什么?" target="_blank">35岁危机提前到25岁?这届年轻人正在经历什么?</a> <span class="text-muted">软件测试君</span> <a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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/%E4%BA%92%E8%81%94%E7%BD%91/1.htm">互联网</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1924752050151813120.htm" title="利用DeepSeek与Python智能生成高效测试用例" target="_blank">利用DeepSeek与Python智能生成高效测试用例</a> <span class="text-muted">软件测试君</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1922331621600587776.htm" title="深入探讨端到端测试:从理论到实践" target="_blank">深入探讨端到端测试:从理论到实践</a> <span class="text-muted">字节自动化测试</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><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/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a><a class="tag" taget="_blank" href="/search/%E7%AB%AF%E5%88%B0%E7%AB%AF%E6%B5%8B%E8%AF%95/1.htm">端到端测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1919515678977617920.htm" title="数字化时代,如何攻克软件兼容性这座大山" target="_blank">数字化时代,如何攻克软件兼容性这座大山</a> <span class="text-muted">爱吃 香菜</span> <a class="tag" taget="_blank" href="/search/%E4%BA%92%E8%81%94%E7%BD%91/1.htm">互联网</a><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/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%97%E5%8C%96%E6%97%B6%E4%BB%A3/1.htm">数字化时代</a><a class="tag" taget="_blank" href="/search/%E5%85%BC%E5%AE%B9%E6%80%A7/1.htm">兼容性</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1919142678621122560.htm" title="计算机网络知识点总结" target="_blank">计算机网络知识点总结</a> <span class="text-muted">BIG_GENERAL_DD</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/%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA/1.htm">查漏补缺</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E5%AE%9D%E5%85%B8/1.htm">面试宝典</a> <div>网络体系结构SAP(访问访问点),OSI参考模型中上层协议实体与下层协议实体之间的逻辑接口叫作服务访问点。两个相邻层间的信息交换,实际上是由两层间的实体通过服务访问点相互作用的。接口以一个或多个服务访问点SAP的形式存在,并通过服务访问点来实现其功能。SAP位于N层和N+1层的逻辑交界面上,是N层实体向N+1层实体提供服务的地方,或者N+1层实体请求N层服务的地方。每个SAP有一个唯一的标识表明它</div> </li> <li><a href="/article/1916574644077391872.htm" title="tcp 和http 网络知识" target="_blank">tcp 和http 网络知识</a> <span class="text-muted">三思而后行,慎承诺</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/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/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a> <div>1.请简述TCP和HTTP的定义与基本概念TCP:即传输控制协议(TransmissionControlProtocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为互联网中的数据通信提供稳定的传输机制,在不可靠的IP层之上,通过确认、重传和错误检测等技术确保数据正确到达。比如在文件传输场景中,TCP保证文件的每个字节都能准确无误地从源端传输到目的端。HTTP:超文本传输协议(Hy</div> </li> <li><a href="/article/1915891939966775296.htm" title="月薪2w+的车载测试工程师都在测什么?" target="_blank">月薪2w+的车载测试工程师都在测什么?</a> <span class="text-muted">爱吃 香菜</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a><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/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/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/%E8%BD%A6%E8%BD%BD%E6%B5%8B%E8%AF%95/1.htm">车载测试</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1915891938326802432.htm" title="大模型|如何用好提示词的一些经验教训" target="_blank">大模型|如何用好提示词的一些经验教训</a> <span class="text-muted">爱吃 香菜</span> <a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%BC%80%E5%8F%91/1.htm">测试开发</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/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/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1913281585919094784.htm" title="深入探索unittest:全面解析测试用例执行顺序与环境管理" target="_blank">深入探索unittest:全面解析测试用例执行顺序与环境管理</a> <span class="text-muted">爱吃 香菜</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><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/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a><a class="tag" taget="_blank" href="/search/unittest/1.htm">unittest</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><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/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1912742443153944576.htm" title="TCP是什么?不需要!使用ESP32网络层直接通信!" target="_blank">TCP是什么?不需要!使用ESP32网络层直接通信!</a> <span class="text-muted">SlientICE</span> <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%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>文章总结(帮你们节约时间)TCP虽然可靠但带来额外开销,ESP32能够绕过传输层,在网络层甚至链路层直接实现自定义通信协议,显著降低延迟并提高效率。使用Arduino环境为ESP32实现自定义网络协议不需要深厚的网络知识,通过esp_wifi原生API和lwip库即可实现原始套接字通信和802.11帧发送。自定义协议特别适合对延迟敏感、资源受限或需要高效率的场景,如实时控制系统、传感器网络和低功耗</div> </li> <li><a href="/article/1911109100968669184.htm" title="408 计算机网络 知识点记忆(8)" target="_blank">408 计算机网络 知识点记忆(8)</a> <span class="text-muted">Heorine</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%80%83%E7%A0%94/1.htm">考研</a> <div>前言本文基于王道考研课程与湖科大计算机网络课程教学内容,系统梳理核心知识记忆点和框架,既为个人复习沉淀思考,亦希望能与同行者互助共进。(PS:后续将持续迭代优化细节)往期内容408计算机网络知识点记忆(1)408计算机网络知识点记忆(2)408计算机网络知识点记忆(3)408计算机网络知识点记忆(4)408计算机网络知识点记忆(5)408计算机网络知识点记忆(6)408计算机网络知识点记忆(7)核</div> </li> <li><a href="/article/1910834537810685952.htm" title="TCP/IP协议在Java中的实现指南" target="_blank">TCP/IP协议在Java中的实现指南</a> <span class="text-muted">Xi Zi</span> <div>本文还有配套的精品资源,点击获取简介:《tcp/ipjava篇》是一本关于在Java环境下实现TCP/IP通信的专业书籍。它详细解释了TCP/IP协议栈的使用,包括网络编程的基础概念、案例分析和计算机网络知识的整合。书籍涵盖了TCP/IP模型的四层架构,Java中TCP和UDP通信的具体实现,以及如何处理HTTP等应用层协议。同时,它也提供了关于TCP/IP基础概念的深入讨论,包括连接的建立与关闭</div> </li> <li><a href="/article/1910604230561951744.htm" title="2025年 10款APP安全测试工具推荐" target="_blank">2025年 10款APP安全测试工具推荐</a> <span class="text-muted">爱吃 香菜</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><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/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E7%BB%8F%E9%AA%8C/1.htm">职场经验</a> <div>面试求职:「面试试题小程序」,内容涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)职场经验干货:软件测试工程师简历上如何编写个人信息(一周8个面试)软件测试工程师简历上如何编写专业技能(一周8个面试)软件测</div> </li> <li><a href="/article/1910480186588065792.htm" title="408 计算机网络 知识点记忆(4)" target="_blank">408 计算机网络 知识点记忆(4)</a> <span class="text-muted">Heorine</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%80%83%E7%A0%94/1.htm">考研</a> <div>前言本文基于王道考研课程与湖科大计算机网络课程教学内容,系统梳理核心知识记忆点和框架,既为个人复习沉淀思考,亦希望能与同行者互助共进。(PS:后续将持续迭代优化细节)往期内容408计算机网络知识点记忆(1)408计算机网络知识点记忆(2)408计算机网络知识点记忆(3)核心知识记忆点介质访问控制MACMAC地址属于数据链路层信道划分介质访问控制时分复用TDM统计时分复用STDM频分复用FDM波分复</div> </li> <li><a href="/article/1910480187011690496.htm" title="408 计算机网络 知识点记忆(7)" target="_blank">408 计算机网络 知识点记忆(7)</a> <span class="text-muted">Heorine</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%80%83%E7%A0%94/1.htm">考研</a> <div>前言本文基于王道考研课程与湖科大计算机网络课程教学内容,系统梳理核心知识记忆点和框架,既为个人复习沉淀思考,亦希望能与同行者互助共进。(PS:后续将持续迭代优化细节)往期内容408计算机网络知识点记忆(1)408计算机网络知识点记忆(2)408计算机网络知识点记忆(3)408计算机网络知识点记忆(4)408计算机网络知识点记忆(5)408计算机网络知识点记忆(6)核心知识记忆点转发表(目的网络地址</div> </li> <li><a href="/article/1910263772992303104.htm" title="目标检测YOLO实战应用案例100讲-基于激光雷达点云的三维目标检测算法研究(中)" target="_blank">目标检测YOLO实战应用案例100讲-基于激光雷达点云的三维目标检测算法研究(中)</a> <span class="text-muted">林聪木</span> <a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>目录4.3点云目标检测评估方法4.4实验与评估基于伪雷达点云的3D目标检测算法研究与应用单目三维目标检测方法三维点云的语义分割方法点云和图像的多模态融合方法相关工作2.1基于深度卷积神经网络的单目深度估计算法2.2基于LiDAR与图像结合的三维目标检测2.3基于神经网络的单目三维目标检测网络知识拓展激光雷达与相机融合-目标检测与跟踪1.整体框架2.主要函数3.配置文件4.运行环境配置3DLidar</div> </li> <li><a href="/article/6.htm" title="[黑洞与暗粒子]没有光的世界" target="_blank">[黑洞与暗粒子]没有光的世界</a> <span class="text-muted">comsci</span> <div>     无论是相对论还是其它现代物理学,都显然有个缺陷,那就是必须有光才能够计算      但是,我相信,在我们的世界和宇宙平面中,肯定存在没有光的世界....      那么,在没有光的世界,光子和其它粒子的规律无法被应用和考察,那么以光速为核心的 &nbs</div> </li> <li><a href="/article/133.htm" title="jQuery Lazy Load 图片延迟加载" target="_blank">jQuery Lazy Load 图片延迟加载</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。 对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。 版本: jQuery v1.4.4+ jQuery Lazy Load v1.7.2 注意事项: 需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src</div> </li> <li><a href="/article/260.htm" title="使用Jodd的优点" target="_blank">使用Jodd的优点</a> <span class="text-muted">Kai_Ge</span> <a class="tag" taget="_blank" href="/search/jodd/1.htm">jodd</a> <div>1.  简化和统一 controller ,抛弃 extends SimpleFormController ,统一使用 implements Controller 的方式。 2.  简化 JSP 页面的 bind, 不需要一个字段一个字段的绑定。 3.  对 bean 没有任何要求,可以使用任意的 bean 做为 formBean。   使用方法简介</div> </li> <li><a href="/article/387.htm" title="jpa Query转hibernate Query" target="_blank">jpa Query转hibernate Query</a> <span class="text-muted">120153216</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>public List<Map> getMapList(String hql, Map map) { org.hibernate.Query jpaQuery = entityManager.createQuery(hql); if (null != map) { for (String parameter : map.keySet()) { jp</div> </li> <li><a href="/article/514.htm" title="Django_Python3添加MySQL/MariaDB支持" target="_blank">Django_Python3添加MySQL/MariaDB支持</a> <span class="text-muted">2002wmj</span> <a class="tag" taget="_blank" href="/search/mariaDB/1.htm">mariaDB</a> <div>现状 首先,Django@Python2.x 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。 MySQL官方的方案 首先据MySQL文档[3]说,自从MySQL</div> </li> <li><a href="/article/641.htm" title="在SQLSERVER中查找消耗IO最多的SQL" target="_blank">在SQLSERVER中查找消耗IO最多的SQL</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a> <div>返回做IO数目最多的50条语句以及它们的执行计划。 select top 50   (total_logical_reads/execution_count) as avg_logical_reads,  (total_logical_writes/execution_count) as avg_logical_writes,  (tot</div> </li> <li><a href="/article/768.htm" title="spring UnChecked 异常 官方定义!" target="_blank">spring UnChecked 异常 官方定义!</a> <span class="text-muted">7454103</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>  如果你接触过spring的 事物管理!那么你必须明白 spring的 非捕获异常! 即 unchecked 异常! 因为 spring 默认这类异常事物自动回滚!! public static boolean isCheckedException(Throwable ex) { return !(ex instanceof RuntimeExcep</div> </li> <li><a href="/article/895.htm" title="mongoDB 入门指南、示例" target="_blank">mongoDB 入门指南、示例</a> <span class="text-muted">adminjun</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C/1.htm">操作</a> <div>一、准备工作 1、 下载mongoDB 下载地址:http://www.mongodb.org/downloads 选择合适你的版本 相关文档:http://www.mongodb.org/display/DOCS/Tutorial 2、 安装mongoDB A、 不解压模式: 将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod.exe就可以启动服务,默</div> </li> <li><a href="/article/1022.htm" title="CUDA 5 Release Candidate Now Available" target="_blank">CUDA 5 Release Candidate Now Available</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/CUDA/1.htm">CUDA</a> <div>The CUDA 5 Release Candidate is now available at http://developer.nvidia.com/<wbr></wbr>cuda/cuda-pre-production. Now applicable to a broader set of algorithms, CUDA 5 has advanced fe</div> </li> <li><a href="/article/1149.htm" title="Essential Studio for WinRT网格控件测评" target="_blank">Essential Studio for WinRT网格控件测评</a> <span class="text-muted">Axiba</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>Essential Studio for WinRT界面控件包含了商业平板应用程序开发中所需的所有控件,如市场上运行速度最快的grid 和chart、地图、RDL报表查看器、丰富的文本查看器及图表等等。同时,该控件还包含了一组独特的库,用于从WinRT应用程序中生成Excel、Word以及PDF格式的文件。此文将对其另外一个强大的控件——网格控件进行专门的测评详述。 网格控件功能 1、</div> </li> <li><a href="/article/1276.htm" title="java 获取windows系统安装的证书或证书链" target="_blank">java 获取windows系统安装的证书或证书链</a> <span class="text-muted">bewithme</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>      有时需要获取windows系统安装的证书或证书链,比如说你要通过证书来创建java的密钥库  。 有关证书链的解释可以查看此处 。   public static void main(String[] args) { SunMSCAPI providerMSCAPI = new SunMSCAPI(); S</div> </li> <li><a href="/article/1403.htm" title="NoSQL数据库之Redis数据库管理(set类型和zset类型)" target="_blank">NoSQL数据库之Redis数据库管理(set类型和zset类型)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a> <div>4.sets类型         Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。         sadd:向名称为key的set中添加元</div> </li> <li><a href="/article/1530.htm" title="异常捕获何时用Exception,何时用Throwable" target="_blank">异常捕获何时用Exception,何时用Throwable</a> <span class="text-muted">bingyingao</span> <div>用Exception的情况 try {        //可能发生空指针、数组溢出等异常         } catch (Exception e) {          </div> </li> <li><a href="/article/1657.htm" title="【Kafka四】Kakfa伪分布式安装" target="_blank">【Kafka四】Kakfa伪分布式安装</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>在http://bit1129.iteye.com/blog/2174791一文中,实现了单Kafka服务器的安装,在Kafka中,每个Kafka服务器称为一个broker。本文简单介绍下,在单机环境下Kafka的伪分布式安装和测试验证   1. 安装步骤   Kafka伪分布式安装的思路跟Zookeeper的伪分布式安装思路完全一样,不过比Zookeeper稍微简单些(不</div> </li> <li><a href="/article/1784.htm" title="Project Euler" target="_blank">Project Euler</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a> <div>Project Euler是个数学问题求解网站,网站设计的很有意思,有很多problem,在未提交正确答案前不能查看problem的overview,也不能查看关于problem的discussion thread,只能看到现在problem已经被多少人解决了,人数越多往往代表问题越容易。     看看problem 1吧: Add all the natural num</div> </li> <li><a href="/article/1911.htm" title="Java-Collections Framework学习与总结-ArrayDeque" target="_blank">Java-Collections Framework学习与总结-ArrayDeque</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/Collections/1.htm">Collections</a> <div>        表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。         这篇要看一下java.util.ArrayDeque。从命名上看</div> </li> <li><a href="/article/2038.htm" title="读《研磨设计模式》-代码笔记-装饰模式-Decorator" target="_blank">读《研磨设计模式》-代码笔记-装饰模式-Decorator</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.Fi</div> </li> <li><a href="/article/2165.htm" title="Maven学习(一)" target="_blank">Maven学习(一)</a> <span class="text-muted">chenyu19891124</span> <a class="tag" taget="_blank" href="/search/Maven%E7%A7%81%E6%9C%8D/1.htm">Maven私服</a> <div>    学习一门技术和工具总得花费一段时间,5月底6月初自己学习了一些工具,maven+Hudson+nexus的搭建,对于maven以前只是听说,顺便再自己的电脑上搭建了一个maven环境,但是完全不了解maven这一强大的构建工具,还有ant也是一个构建工具,但ant就没有maven那么的简单方便,其实简单点说maven是一个运用命令行就能完成构建,测试,打包,发布一系列功</div> </li> <li><a href="/article/2292.htm" title="[原创]JWFD工作流引擎设计----节点匹配搜索算法(用于初步解决条件异步汇聚问题) 补充" target="_blank">[原创]JWFD工作流引擎设计----节点匹配搜索算法(用于初步解决条件异步汇聚问题) 补充</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a> <div>本文主要介绍在JWFD工作流引擎设计中遇到的一个实际问题的解决方案,请参考我的博文"带条件选择的并行汇聚路由问题"中图例A2描述的情况(http://comsci.iteye.com/blog/339756),我现在把我对图例A2的一个解决方案公布出来,请大家多指点 节点匹配搜索算法(用于解决标准对称流程图条件汇聚点运行控制参数的算法) 需要解决的问题:已知分支</div> </li> <li><a href="/article/2419.htm" title="Linux中用shell获取昨天、明天或多天前的日期" target="_blank">Linux中用shell获取昨天、明天或多天前的日期</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E5%87%A0%E5%B9%B4/1.htm">上几年</a><a class="tag" taget="_blank" href="/search/%E6%98%A8%E5%A4%A9/1.htm">昨天</a><a class="tag" taget="_blank" href="/search/%E8%8E%B7%E5%8F%96%E4%B8%8A%E5%87%A0%E4%B8%AA%E6%9C%88/1.htm">获取上几个月</a> <div>在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年 # 获取昨天 date -d 'yesterday'  # 或 date -d 'last day' # 获取明天 date -d 'tomorrow'   # 或 date -d 'next day' # 获取上个月 date -d 'last month' # </div> </li> <li><a href="/article/2546.htm" title="我所理解的云计算" target="_blank">我所理解的云计算</a> <span class="text-muted">dongwei_6688</span> <a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a> <div>      在刚开始接触到一个概念时,人们往往都会去探寻这个概念的含义,以达到对其有一个感性的认知,在Wikipedia上关于“云计算”是这么定义的,它说:        Cloud computing is a phrase used to describe a variety of computing co</div> </li> <li><a href="/article/2673.htm" title="YII CMenu配置" target="_blank">YII CMenu配置</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>Adding id and class names to CMenu We use the id and htmlOptions to accomplish this. Watch. //in your view $this->widget('zii.widgets.CMenu', array( 'id'=>'myMenu', 'items'=>$this-&g</div> </li> <li><a href="/article/2800.htm" title="设计模式之静态代理与动态代理" target="_blank">设计模式之静态代理与动态代理</a> <span class="text-muted">come_for_dream</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>静态代理与动态代理        代理模式是java开发中用到的相对比较多的设计模式,其中的思想就是主业务和相关业务分离。所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如我们在进行删除操作的时候需要检验一下用户是否登陆,我们可以删除看成主业务,而把检验用户是否登陆看成其相关业务</div> </li> <li><a href="/article/2927.htm" title="【转】理解Javascript 系列" target="_blank">【转】理解Javascript 系列</a> <span class="text-muted">gcc2ge</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>理解Javascript_13_执行模型详解 摘要: 在《理解Javascript_12_执行模型浅析》一文中,我们初步的了解了执行上下文与作用域的概念,那么这一篇将深入分析执行上下文的构建过程,了解执行上下文、函数对象、作用域三者之间的关系。函数执行环境简单的代码:当调用say方法时,第一步是创建其执行环境,在创建执行环境的过程中,会按照定义的先后顺序完成一系列操作:1.首先会创建一个</div> </li> <li><a href="/article/3054.htm" title="Subsets II" target="_blank">Subsets II</a> <span class="text-muted">hcx2013</span> <a class="tag" taget="_blank" href="/search/set/1.htm">set</a> <div>Given a collection of integers that might contain duplicates, nums, return all possible subsets. Note: Elements in a subset must be in non-descending order. The solution set must not conta</div> </li> <li><a href="/article/3181.htm" title="Spring4.1新特性——Spring缓存框架增强" target="_blank">Spring4.1新特性——Spring缓存框架增强</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a> <div>目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC T</div> </li> <li><a href="/article/3308.htm" title="shell嵌套expect执行命令" target="_blank">shell嵌套expect执行命令</a> <span class="text-muted">liyonghui160com</span> <div>    一直都想把expect的操作写到bash脚本里,这样就不用我再写两个脚本来执行了,搞了一下午终于有点小成就,给大家看看吧.   系统:centos 5.x   1.先安装expect yum -y install expect   2.脚本内容: cat auto_svn.sh   #!/bin/bash </div> </li> <li><a href="/article/3435.htm" title="Linux实用命令整理" target="_blank">Linux实用命令整理</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>0. 基本命令   linux 基本命令整理    1. 压缩 解压   tar -zcvf a.tar.gz a   #把a压缩成a.tar.gz   tar -zxvf a.tar.gz     #把a.tar.gz解压成a    2. vim小结   2.1 vim替换   :m,ns/word_1/word_2/gc  </div> </li> <li><a href="/article/3562.htm" title="独立开发人员通向成功的29个小贴士" target="_blank">独立开发人员通向成功的29个小贴士</a> <span class="text-muted">shoothao</span> <a class="tag" taget="_blank" href="/search/%E7%8B%AC%E7%AB%8B%E5%BC%80%E5%8F%91/1.htm">独立开发</a> <div> 概述:本文收集了关于独立开发人员通向成功需要注意的一些东西,对于具体的每个贴士的注解有兴趣的朋友可以查看下面标注的原文地址。 明白你从事独立开发的原因和目的。 保持坚持制定计划的好习惯。 万事开头难,第一份订单是关键。 培养多元化业务技能。 提供卓越的服务和品质。 谨小慎微。 营销是必备技能。 学会组织,有条理的工作才是最有效率的。 “独立</div> </li> <li><a href="/article/3689.htm" title="JAVA中堆栈和内存分配原理" target="_blank">JAVA中堆栈和内存分配原理</a> <span class="text-muted">uule</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1、栈、堆 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static f</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>