Web基础与HTTP协议

目录

前言

一、Web基础

1.1 域名概述

域名的概念

1.2 域名空间结构

1.3   域名注册

1.4    网页的概念

1.5  HTML概述

1.5.1 HTML超文本标记语言

1.5.2  HTML文档的结构

​编辑 1.6  网页基本标签

1.7   Web概述 

1.7.1  web 介绍

1.7.3  Web2.0

1.8   静态网页

1.8.1  静态网页的特点

1.9 动态网页

1.9.1  动态网页的特点

二、 HTTP协议

2.1 HTTP协议介绍

2.2 HTTP方法

2.3   GET和POST 比较

2.4 HTTP 状态码

生产环境常见的HTTP状态码

2.5 HTTP请求流程分析

2.5.1  请求报文

2.5.2  响应报文

2.6   HTTP请求流程

 三、总结


前言

对于我们学习云计算的人来说,服务是很重要的知识,这章将详细介绍一下web基础知识和HTTP协议的概念和作用。

一、Web基础

1.1 域名概述

域名的概念

IP地址不易记忆


早期使用Hosts文件解析域名、

主机名称重复
主机维护困难

/etc/hosts#配置文件
IP地址 主机名/域名 ……#组成Hosts文件

DNS (Domain Name System域名系统)

分布式
层次性

Web基础与HTTP协议_第1张图片

扩展:DNS解析的三种方法

① /etc/hosts
linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,
使用本地/etc/hosts完成解析/映射,实现快速访问
PS: 主要用于主机之间(IP和主机名)的映射/解析关系,示例:
192.168.111.15 ceshi
192.168.111.100 node1
192.168.111.120 node2

② /etc/resolv.conf
DNS客户端配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜索顺序等等,
这个文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。
PS:主要用与匹配DNS服务器,示例:
nameserver 114.114.114.114
nameserver 8.8.8.8

③ /etc/sysconfig/network-scripts/ifcfg-ens33
我们也可以在网卡配置文件中定义DNS1= DNS2=

生效顺序 1 hosts文件 2 网卡配置文件 3 /etc/resolv.conf

1.2 域名空间结构

定义:表示一组主机并提供它们的有关信息的树形结构

www.baidu.com

域名服务器(分布式,每台主机维护一个部分):

① 保持和维护域名空间的程序

② 响应解析器的请求

域名空间结构(从右网左看)

  • 根域
  • 顶级域
    • 组织域
    • 国家/地区域名
  • 二级域名
  • FQDN=主机名.DNS后缀

1.3   域名注册

域名注册是Internet中用于解决地址对应问题的一种方法

遵循先申请先注册原则

域名注册步骤

Web基础与HTTP协议_第2张图片注:域名注册是Internet  中用于解决地址对应问题的一种方法 ; 遵循先申请先注册原则

扩展:阿里云域名怎么申请的?

申请--》查询重名--》给钱(20-60元)--》备案(阿里云)拍照(负责人拍照人)--》 10-20天   申请之后就可以解析和使用,但是如果有问题就会被封

1.4    网页的概念

网页
●纯文本格式文件
●编写语言为HTML
在用户的浏览器中被“ 翻译”成网页形式显示出来

网站
●由一个一个页面构成的,是多个网页的结合体主页
●打开网站后出现的第一个网页称为网站主页(或首页)

域名
●浏览网页时输入的网址
HTTP
●用来传输网页的通信协议

URL
●是一种万维网寻址系统

HTML
●用来编写网页的超文本标记语言

超链接
●超链接是将网站中不同网页链接起来的功能

发布
●是一种万维网寻址系统

1.5  HTML概述

1.5.1 HTML超文本标记语言

  • Hyper text markup language
  • 网页的“源码”

浏览器:“解释和执行” HTML源码的工具

1.5.2  HTML文档的结构

HTML网页
       头部部分
       标题部分
       主体部分
       网页内容,包括文本、图像等



我的第一个网页
#标签内容
#主题代码部分    

    Hello World!


Web基础与HTTP协议_第3张图片

Web基础与HTTP协议_第4张图片 1.6  网页基本标签

 网页摘要信息的作用

            有利于浏览器解析
            有利于搜索引擎搜索

标签</code></pre> 
  <pre><code><meta> 标签</code></pre> 
  <pre><code><head>
 <title> 搜狐-中国最大的门户网站
 

 
 content="挖掘机哪家强!"/>

标题标签

行控制相关标签

范围标签

图像标签

超链接标签

特殊符号



	
		
		第一个网页
	
	
		

静夜思

床前明月光

疑是地上霜

举头望明月

低头思故乡

Web基础与HTTP协议_第5张图片

头标签中常用标签:

标签        描述
       定义了文档的标题
<base>        定义了页面链接标签的默认链接地址
<link>        定义了一个文档和外部资源之间的关系
<meta>        定义了 HTML 文档中的元数据
<script>      定义了客户端的脚本文件
<style>       定义了 HTML 文档的样式文件</code></pre> 
  <p><strong>内容标签常用标签:</strong></p> 
  <pre><code><table>       定义一个表格
<tr>        定义了表格中的一行
<td>        定义了表格中某一行的一列
<img>       定义了一个图像
<a>         定义了一个超链接
<p>         定义了一行
<br>        定义了换行
<font>        定义了字体</code></pre> 
  <h2 id="1.7%C2%A0%C2%A0%C2%A0Web%E6%A6%82%E8%BF%B0%C2%A0">1.7   Web概述 </h2> 
  <h3 id="1.7.1%C2%A0%20web%20%E4%BB%8B%E7%BB%8D">1.7.1  web 介绍</h3> 
  <p><strong>Web (World Wide Web)即全球广域网,也称为万维网</strong></p> 
  <p><strong>一种分布式图形信息系统。</strong></p> 
  <p><strong>建立在Internet上的一种网络服务</strong><br><br><strong>1.7.2 Web 1.0 </strong></p> 
  <p>以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容</p> 
  <p><strong>这个过程是网站到用户的单向行为</strong></p> 
  <h3 id="1.7.3%C2%A0%C2%A0Web2.0"><strong>1.7.3  Web2.0</strong></h3> 
  <p>更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者</p> 
  <p>加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与</p> 
  <p><strong>Web2.0特征</strong></p> 
  <p><span style="background-color:#ffd900;">用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户</span></p> 
  <h2 id="1.8%C2%A0%20%C2%A0%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5">1.8   静态网页</h2> 
  <p><strong> 静态网页是标准的HTML文件</strong></p> 
  <ul> 
   <li>扩展名是<span style="background-color:#ffd900;">.htm、.html</span></li> 
   <li>             文本、图像、声音、FLASH动画、客户端脚本和Activex控件及JAVA小程序等</li> 
   <li>是网站建设的基础,早期网站一般都有静态网页制作</li> 
   <li>没有后台数据库、不含程序和不可交互的网页</li> 
   <li>相对更新起来比较麻烦,适用于一般更新较少的展示型网站</li> 
  </ul> 
  <h3 id="1.8.1%C2%A0%20%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5%E7%9A%84%E7%89%B9%E7%82%B9">1.8.1  静态网页的特点</h3> 
  <ul> 
   <li>每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”</li> 
   <li>网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件</li> 
   <li>静态网友的内容相对稳定,因此容易被搜索引擎检索</li> 
  </ul> 
  <p></p> 
  <ul> 
   <li>静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难</li> 
   <li>静态网页的交互性较差,在功能方面有较大的限制</li> 
   <li>页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面</li> 
  </ul> 
  <h2 id="1.9%20%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5">1.9 动态网页</h2> 
  <ul> 
   <li>网页URL不固定,能通过后台与用户交互</li> 
   <li>在动态网页网址中有一个标志性的符号——“?”</li> 
   <li>常用的语言有PHP、JSP、Python、Ruby等</li> 
  </ul> 
  <p><a href="http://img.e-com-net.com/image/info8/e290a49e871345dea7ffc0b0b314e965.jpg" target="_blank"><img alt="Web基础与HTTP协议_第6张图片" height="266" src="http://img.e-com-net.com/image/info8/e290a49e871345dea7ffc0b0b314e965.jpg" width="458" style="border:1px solid black;"></a></p> 
  <h3 id="1.9.1%C2%A0%20%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5%E7%9A%84%E7%89%B9%E7%82%B9">1.9.1  动态网页的特点</h3> 
  <p><strong>交互性</strong></p> 
  <ul> 
   <li>即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋</li> 
  </ul> 
  <p><strong>自动更新</strong></p> 
  <ul> 
   <li>无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量</li> 
  </ul> 
  <p><strong>因时因人而变</strong></p> 
  <ul> 
   <li>当不同的时间,不同的人访问同一网址时会产生不同的页面</li> 
  </ul> 
  <p>扩展:<span style="background-color:#ffd900;">目前常用的动态网页编程语言如下:</span></p> 
  <p>●<strong>PHP</strong><br> 即Hypertext Preprocessor (超文本预处理器),它是当今Internet上最为火热的脚本语言,其语法借鉴了C、 Java、PERL<br> 等语言,但只需要很少的编程知识你就能使用PHP 建立一个真正交互的Web站点。<br> ●<strong>JSP</strong><br> 即Java Server Pages (Java服务器页面),它是由Sun Microsystem 公司于1999 年6月推出的新技术,是基于Java Servlet<br> 以及整个Java 体系的Web开发技术。<br> ●<strong>Python</strong><br> 是一种面向对象、跨平台的动态类计算机程序设计语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添<br> 加,越来越多被用于独立的大型项目开发。</p> 
  <p>●<strong>Ruby</strong><br> 是一种简单快捷的面向对象( 面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。 它的灵感与特性来自于Perl、 Smalltalk、 Eiffel、Ada 以及Lisp 语言。</p> 
  <h1 id="%E4%BA%8C%E3%80%81%20HTTP%E5%8D%8F%E8%AE%AE">二、 HTTP协议</h1> 
  <h2 id="2.1%20HTTP%E5%8D%8F%E8%AE%AE%E4%BB%8B%E7%BB%8D">2.1 HTTP协议介绍</h2> 
  <p>HTTP(超文本传输协议HyperText  Transfer   Protocol)协议是互联网上应用最为广泛的一种网络协议,是基于TCP设计的应用层传输协议,这个协议的目的是为了发布和接受web服务器上的HTML页面。</p> 
  <p>HTTP/HTTPS是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行tcp连接(三次握手),之后发送http请求与接收http响应都是通过socket接口来调用tcp 协议实现。</p> 
  <p>HTTP 是一种无状态(stateless)的协议,它本身不会对发送过的请求和响应的通信状态进行持久化处理(处理,保存)。目的是为了保持HTTP协议的简单性,从而更够快速处理大量事务,提高效率。然而,在许多的应用场景中,我们需要保持用户登录的专题或记录用户购物车中的商品。所以必须引入一些计数来记录管理状态,例如:cookie</p> 
  <p>cookie 和session 都是为了实现HTTP短期的持久化(内存/缓存方式,查询快,效率比较高);</p> 
  <p>cookie 是缓存在用户端浏览器中的(默认缓存一天),当下次客户端通过同一个浏览器访问客户端的时候,会有限读取cookie中的缓存信息,项服务端进行请求,同时服务器收到客户端请求的时候,读取到cookie 文件,知道客户端之前找的是服务器A处理的任务,为了省事,省资源,干脆直接将请求交给服务器A处理。</p> 
  <p>两者对比:</p> 
  <p>cookie : 省服务器性能</p> 
  <p>session : 更安全</p> 
  <p><strong>HTTP协议的版本</strong></p> 
  <ul> 
   <li>HTTP 0.9       已过时</li> 
   <li>HTTP 1.0       完善的请求,响应模型,并且协议补充完整,如:get 、post、head方法</li> 
   <li>HTTP 1.1       在1.0 基础上进行更新,新增无助请求方式:OPTIONS, PUT , DELETTE, TRACE ,  CONNECT</li> 
   <li>HTTP 2.0</li> 
  </ul> 
  <h2 id="2.2%C2%A0HTTP%E6%96%B9%E6%B3%95">2.2 HTTP方法</h2> 
  <p><strong>HTTP支持几种不同的请求命令,这些命令被称为HTTP方法(HTTP method)</strong></p> 
  <p><strong>每条HTTP请求报文都包含一个方法,告诉服务器要执行什么动作</strong><br> 获取一个Web页面<br> 运行一个网关程序<br> 删除一个文件等</p> 
  <p><strong>HTTP协议有多种获得Web资源的方法</strong></p> 
  <p>常用的方法:GET和POST</p> 
  <table border="1"> 
   <tbody> 
    <tr> 
     <td style="background-color:#8db3e2;width:87.95pt;"> <p style="margin-left:.0001pt;text-align:center;">HTTP方法</p> </td> 
     <td style="background-color:#8db3e2;width:338.15pt;"> <p style="margin-left:.0001pt;text-align:center;">描述</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:87.95pt;"> <p style="margin-left:.0001pt;text-align:center;">GET</p> </td> 
     <td style="background-color:#fdeada;width:338.15pt;"> <p style="margin-left:.0001pt;text-align:justify;">请求获取Request-URI所标识的资源</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:87.95pt;"> <p style="margin-left:.0001pt;text-align:center;">PUT</p> </td> 
     <td style="background-color:#fdeada;width:338.15pt;"> <p style="margin-left:.0001pt;text-align:justify;">请求服务器存储一个资源,并用Request-URI作为其标识</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:87.95pt;"> <p style="margin-left:.0001pt;text-align:center;">DELETE</p> </td> 
     <td style="background-color:#fdeada;width:338.15pt;"> <p style="margin-left:.0001pt;text-align:justify;">请求服务器删除Request-URI所1标识的资源</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:87.95pt;"> <p style="margin-left:.0001pt;text-align:center;">POST</p> </td> 
     <td style="background-color:#fdeada;width:338.15pt;"> <p style="margin-left:.0001pt;text-align:justify;">在Request-URI所标识的资源后附加新的数据</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:87.95pt;"> <p style="margin-left:.0001pt;text-align:center;">HEAD</p> </td> 
     <td style="background-color:#fdeada;width:338.15pt;"> <p style="margin-left:.0001pt;text-align:justify;">请求获取由Request-URI所标识的资源的响应消息报头</p> </td> 
    </tr> 
   </tbody> 
  </table> 
  <p><span style="background-color:#ffd900;">1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样, 只是用来查询一 下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。</span><br> 2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作–样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。<br><span style="background-color:#ffd900;">3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样, 会创建新的内容。几乎目前所有的提交操作都是用POST请求的。</span><br> 4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作</p> 
  <h2 id="2.3%C2%A0%20%C2%A0GET%E5%92%8CPOST%20%E6%AF%94%E8%BE%83">2.3   GET和POST 比较</h2> 
  <p><strong>GET方法:从指定的服务器上获得数据</strong></p> 
  <ul> 
   <li>GET请求能被缓存</li> 
   <li>GET请求会保存在浏览器的浏览纪录里</li> 
   <li>GET请求有长度的限制</li> 
   <li>主要用于获取数据</li> 
   <li>查询的字符串会显示在URL中,不安全</li> 
  </ul> 
  <p><strong>POST方法:提交数据给指定服务器处理</strong></p> 
  <ul> 
   <li>POST请求不能被缓存</li> 
   <li>POST请求不会保存在浏览器的浏览纪录里</li> 
   <li>POST请求没有长度长度限制</li> 
   <li>查询的字符串不会显示在URL中,比较安全</li> 
  </ul> 
  <h2 id="2.4%20HTTP%20%E7%8A%B6%E6%80%81%E7%A0%81">2.4 HTTP 状态码</h2> 
  <p>HTTP状态码(HTTP Status Code) 是用以表示网页服务器HTTP 响应状态的3位数字代码,当浏览器请求某一URL时,服务器根据处理情况返回相应的处理状态。<br> 通常正常的状态码为2xx,3xx (如200),如果出现异常会返回4xx,5xx (如404) 。</p> 
  <table border="1" style="margin-left:6.75pt;width:507.95pt;"> 
   <tbody> 
    <tr> 
     <td style="background-color:#8db3e2;width:155.75pt;"> <p style="margin-left:.0001pt;text-align:center;"><strong><span style="color:#4f4f4f;"><strong>状态码首位</strong></span></strong></p> </td> 
     <td style="background-color:#8db3e2;width:189pt;"> <p style="margin-left:.0001pt;text-align:center;"><strong><span style="color:#4f4f4f;"><strong>已定义范围</strong></span></strong></p> </td> 
     <td style="background-color:#8db3e2;width:163.2pt;"> <p style="margin-left:.0001pt;text-align:center;"><strong><span style="color:#4f4f4f;"><strong>分类</strong></span></strong></p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:155.75pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">1xx</span></p> </td> 
     <td style="background-color:#d6e3bc;width:189pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">100-101</span></p> </td> 
     <td style="background-color:#d6e3bc;width:163.2pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">信息提示</span></p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:155.75pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">2xx</span></p> </td> 
     <td style="background-color:#d6e3bc;width:189pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">200-206</span></p> </td> 
     <td style="background-color:#d6e3bc;width:163.2pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">成功</span></p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:155.75pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">3xx</span></p> </td> 
     <td style="background-color:#d6e3bc;width:189pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">300-305</span></p> </td> 
     <td style="background-color:#d6e3bc;width:163.2pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">重定向</span></p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:155.75pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">4xx</span></p> </td> 
     <td style="background-color:#d6e3bc;width:189pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">400-415</span></p> </td> 
     <td style="background-color:#d6e3bc;width:163.2pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">客户端错误</span></p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:155.75pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">5xx</span></p> </td> 
     <td style="background-color:#d6e3bc;width:189pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">500-505</span></p> </td> 
     <td style="background-color:#d6e3bc;width:163.2pt;"> <p style="margin-left:.0001pt;text-align:center;"><span style="color:#4f4f4f;">服务器错误</span></p> </td> 
    </tr> 
   </tbody> 
  </table> 
  <h2 id="%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%B8%B8%E8%A7%81%E7%9A%84HTTP%E7%8A%B6%E6%80%81%E7%A0%81">生产环境常见的HTTP状态码</h2> 
  <table border="1"> 
   <tbody> 
    <tr> 
     <td style="background-color:#548dd4;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:center;">消息</p> </td> 
     <td style="background-color:#548dd4;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:center;">描述</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">200 OK</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">请求成功</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">301  Moved Permantly</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">请求的永久页面跳转</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">403  Forbidden</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">禁止访问该页面</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">404  Not Found</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">服务器无法找到被请求的页面</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">500 Internal Server Error</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">内部服务器错误</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">502  Bad Gateway</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">无效网关</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">503 Service Unavailable</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">当前服务器不可用</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#d6e3bc;width:130.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">504  Gateway Timeout</p> </td> 
     <td style="background-color:#d6e3bc;width:295.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">网关请求超时</p> </td> 
    </tr> 
   </tbody> 
  </table> 
  <h2 id="2.5%C2%A0HTTP%E8%AF%B7%E6%B1%82%E6%B5%81%E7%A8%8B%E5%88%86%E6%9E%90">2.5 HTTP请求流程分析</h2> 
  <p>用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。</p> 
  <h3 id="2.5.1%C2%A0%20%E8%AF%B7%E6%B1%82%E6%8A%A5%E6%96%87">2.5.1  请求报文</h3> 
  <p>请求行:请求行由请求方法、URL 以及协议版本三部分组成。<br> 请求头:请求头为请求报文添加了- -些附加信息,由“名/值"对组成,每行一-对,名和值之间使用冒号分隔。<br> 空行:请求头部的最后会有一-个空行,表示请求头部结束,接下来为请求体,这- -行非常重要,必不可少。<br> 请求体:请求体是请求提交的参数,GET方法已经在URL中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。</p> 
  <p><strong>常用的请求头:</strong></p> 
  <table border="1"> 
   <tbody> 
    <tr> 
     <td style="background-color:#8db3e2;width:98.75pt;"> <p style="margin-left:.0001pt;text-align:center;">请求头</p> </td> 
     <td style="background-color:#8db3e2;width:327.35pt;"> <p style="margin-left:.0001pt;text-align:center;">描述</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#dce6f2;width:98.75pt;"> <p style="margin-left:.0001pt;text-align:justify;">Host</p> </td> 
     <td style="background-color:#dce6f2;width:327.35pt;"> <p style="margin-left:.0001pt;text-align:justify;">接受请求的服务器地址,可以是 IP:端口号,也可以是域名</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#dce6f2;width:98.75pt;"> <p style="margin-left:.0001pt;text-align:justify;">User-Agent</p> </td> 
     <td style="background-color:#dce6f2;width:327.35pt;"> <p style="margin-left:.0001pt;text-align:justify;">发送请求的应用程序名称</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#dce6f2;width:98.75pt;"> <p style="margin-left:.0001pt;text-align:justify;">Connection</p> </td> 
     <td style="background-color:#dce6f2;width:327.35pt;"> <p style="margin-left:.0001pt;text-align:justify;">指定与连接相关的属性,如 Connection:Keep-Alive</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#dce6f2;width:98.75pt;"> <p style="margin-left:.0001pt;text-align:justify;">Accept-Charset</p> </td> 
     <td style="background-color:#dce6f2;width:327.35pt;"> <p style="margin-left:.0001pt;text-align:justify;">通知服务端可以发送的编码格式</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#dce6f2;width:98.75pt;"> <p style="margin-left:.0001pt;text-align:justify;">Accept-Encoding</p> </td> 
     <td style="background-color:#dce6f2;width:327.35pt;"> <p style="margin-left:.0001pt;text-align:justify;">通知服务端可以发送的数据压缩格式</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#dce6f2;width:98.75pt;"> <p style="margin-left:.0001pt;text-align:justify;">Accept-Language</p> </td> 
     <td style="background-color:#dce6f2;width:327.35pt;"> <p style="margin-left:.0001pt;text-align:justify;">通知服务端可以发送的语言</p> </td> 
    </tr> 
   </tbody> 
  </table> 
  <h3 id="2.5.2%C2%A0%C2%A0%E5%93%8D%E5%BA%94%E6%8A%A5%E6%96%87">2.5.2  响应报文</h3> 
  <p>状态行:状态行由协议版本,状态码,状态码描述三部分组成。<br> 响应头:响应头与请求头部类似,为响应报文添加了–些附加信息。<br> 空行:响应头部的最后会有一一个空行,表示响应头部结束。<br> 响应体:服务器返回的相应HTML数据,浏览器对其解析后显示页面。</p> 
  <p><strong>常见响应头:</strong></p> 
  <table border="1"> 
   <tbody> 
    <tr> 
     <td style="background-color:#8db3e2;width:127.55pt;"> <p style="margin-left:.0001pt;text-align:center;">响应头</p> </td> 
     <td style="background-color:#8db3e2;width:298.55pt;"> <p style="margin-left:.0001pt;text-align:center;">描述</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:127.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">Server</p> </td> 
     <td style="background-color:#fdeada;width:298.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">服务器应用程序软件的名称和版本</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:127.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">Content-Type</p> </td> 
     <td style="background-color:#fdeada;width:298.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">响应正文的类型(是图片还是二进制字符串)</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:127.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">Content-Length</p> </td> 
     <td style="background-color:#fdeada;width:298.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">响应正文长度</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:127.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">Content-Charset</p> </td> 
     <td style="background-color:#fdeada;width:298.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">响应正文使用的编码</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:127.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">Content-Encoding</p> </td> 
     <td style="background-color:#fdeada;width:298.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">响应正文使用的数据压缩格式</p> </td> 
    </tr> 
    <tr> 
     <td style="background-color:#fdeada;width:127.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">Content-Language</p> </td> 
     <td style="background-color:#fdeada;width:298.55pt;"> <p style="margin-left:.0001pt;text-align:justify;">响应正文使用的语言</p> </td> 
    </tr> 
   </tbody> 
  </table> 
  <p><a href="http://img.e-com-net.com/image/info8/8f5eafb88d8e48f588a463a9fe7327c7.jpg" target="_blank"><img alt="Web基础与HTTP协议_第7张图片" height="333" src="http://img.e-com-net.com/image/info8/8f5eafb88d8e48f588a463a9fe7327c7.jpg" width="650" style="border:1px solid black;"></a></p> 
  <h2 id="2.6%C2%A0%C2%A0%C2%A0HTTP%E8%AF%B7%E6%B1%82%E6%B5%81%E7%A8%8B">2.6   HTTP请求流程</h2> 
  <p> HTTP请求是指 : <br> 客户端通过发送 HTTP 请求向服务器请求对资源的访问。 <br> 它向服务器传递了一个数据块,也就是请求信息,<br> HTTP 请求由三部分组成:请求行、请求头和请求正文。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/d30c27e012994ec38ecfc452b13f2a18.jpg" target="_blank"><img alt="Web基础与HTTP协议_第8张图片" height="390" src="http://img.e-com-net.com/image/info8/d30c27e012994ec38ecfc452b13f2a18.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p>用户输入URL(地址链接)(http://www.baidu.com:80/tools.html)客户端获取到端口及主机名后,客户端利用<span style="background-color:#ffd900;">DNS解析域名</span>,首先客户端的浏览器会先找自身的缓存,如果有解析结束,如果没有客户端会去找host文件,如果host文件没有的话,客户端会去找本地的DNS缓存服务器,本地的DNS缓存服务器没有的话,缓存服务器会去找根域,根域没有,会返回一个.com.然后本地缓存服务器会去找顶级域,顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域,二级域解析完后会返回客户端。</p> 
  <p><span style="background-color:#ffd900;">客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接</span>,首先客户端向服务器发送请求连接报文,SYN=1初始序号seq为x,这时客户端进入<span style="background-color:#ffd900;">SYN-SENT状态</span>,服务器确认请求报文ACK=1,SYN=1,确认序号ACK=X+1,服务器产生的初始序号seq=y,回复客户端确认连接,此时服务器进入<span style="background-color:#ffd900;">SYN-RCVD</span>状态,客户端接受后确认报文ACK=1,ACK=y+1,客户端又重组序号为x+1。TCP连接已经建立,客户端进入<span style="background-color:#ffd900;">ESTABLISHED</span> 状态,当服务器收到客户端的确认后,也会进入 ESTABLISHED 状态。客户端连接到IP地址,发送httpGET的请求,从服务器读取http响应。</p> 
  <p>之后断开连接时,需要通过TCP的四次挥手完成,客户端向服务器发送断开连接请求报文,FIN=1,ACK=1,序号为u,客户端处于<span style="background-color:#38d8f0;">FIN—WAIT-1(终止等待1)状态</span>,服务器确认报文ACK=1,确认序号为ACK=u+1,服务器的序号为v,回复客户端,服务器服务端处于<span style="background-color:#38d8f0;">CLOSE—WAIT(关闭等待)状态</span>,客户端接受确认报文ACK=1,确认序号ACK=v+1,客户端重组序号为seq=u+1,客户端处于<span style="background-color:#38d8f0;">FIN—WAIT-2(终止等待2)状态</span>,然后服务器也想让客户端断开连接,就发送了断开连接请求,FIN=1,ACK=1,服务器重组序号为w,服务器服务端处于<span style="background-color:#38d8f0;">LAST—ACK(最后确认)状态</span>,客户端接受后确认报文ACK=1.确认序号为ACK=w+1,客户端序号为u+1,客户端进入<span style="background-color:#38d8f0;">CLOSED(时间等待)状态</span>,等待最长报文段寿命2*MSL,服务器确认后,立即进入关闭状态。然后进行关闭连接。</p> 
  <h1 id="%C2%A0%E4%B8%89%E3%80%81%E6%80%BB%E7%BB%93"> 三、总结</h1> 
  <p>1.  域名空间结构</p> 
  <p>2. HTML 文档结构</p> 
  <p>3.  网页的基本标签</p> 
  <p>4. Web1.0 与Web 2.0 区别</p> 
  <p>5. Post 与Get 方法区别</p> 
  <p>6. HTTP协议报文格式</p> 
  <p></p> 
  <p></p> 
  <p></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1527251986926338048"></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">你可能感兴趣的:(http,网络协议,网络)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1773610251875057664.htm"
                           title="Android和IOS应用开发-Flutter应用让屏幕在 app 运行期间保持常亮的方法" target="_blank">Android和IOS应用开发-Flutter应用让屏幕在 app 运行期间保持常亮的方法</a>
                        <span class="text-muted">江上清风山间明月</span>
<a class="tag" taget="_blank" href="/search/Flutter/1.htm">Flutter</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/KeepAlive/1.htm">KeepAlive</a><a class="tag" taget="_blank" href="/search/%E5%B1%8F%E5%B9%95%E5%B8%B8%E4%BA%AE/1.htm">屏幕常亮</a><a class="tag" taget="_blank" href="/search/wakelock/1.htm">wakelock</a><a class="tag" taget="_blank" href="/search/%E7%86%84%E5%B1%8F/1.htm">熄屏</a>
                        <div>文章目录Flutter应用让屏幕在app运行期间保持常亮的方法方法一:使用系统插件方法二:使用Widgets注意事项Flutter应用让屏幕在app运行期间保持常亮的方法在Flutter开发中,可以使用以下两种方法让屏幕在app运行期间保持常亮:方法一:使用系统插件Flutter社区中已经有很多相关插件可供使用,比如wakelock:https://pub.dev/packages/wakeloc</div>
                    </li>
                    <li><a href="/article/1773604712310964224.htm"
                           title="python抓包与解包_Python—网络抓包与解包(pcap、dpkt)" target="_blank">python抓包与解包_Python—网络抓包与解包(pcap、dpkt)</a>
                        <span class="text-muted">weixin_39691055</span>
<a class="tag" taget="_blank" href="/search/python%E6%8A%93%E5%8C%85%E4%B8%8E%E8%A7%A3%E5%8C%85/1.htm">python抓包与解包</a>
                        <div>pcap安装[root@localhost~]#pipinstallpypcap抓包与解包#-*-coding:utf-8-*-importpcap,dpktimportre,threading,requests__black_ip=['103.224.249.123','203.66.1.212']#抓包:param1eth_name网卡名,如:eth0,eth3。param2p_type日志捕</div>
                    </li>
                    <li><a href="/article/1773603579169406976.htm"
                           title="2022年河南省高等职业教育技能大赛云计算赛项竞赛赛卷(样卷)" target="_blank">2022年河南省高等职业教育技能大赛云计算赛项竞赛赛卷(样卷)</a>
                        <span class="text-muted">忘川_ydy</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/openstack/1.htm">openstack</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/k8s/1.htm">k8s</a><a class="tag" taget="_blank" href="/search/ansible/1.htm">ansible</a>
                        <div>#需要资源(软件包及镜像)或有问题的,可私博主!!!#需要资源(软件包及镜像)或有问题的,可私博主!!!#需要资源(软件包及镜像)或有问题的,可私博主!!!第一部分:私有云任务1私有云服务搭建(10分)使用提供的用户名密码,登录竞赛用的云计算平台,按要求自行使用镜像创建两台云主机,创建完云主机后确保网络正常通信,然后按要求配置服务器。根据提供安装脚本框架,补充脚本完成OpenStack平台的安装搭</div>
                    </li>
                    <li><a href="/article/1773602697044361216.htm"
                           title="浪潮 M5系列服务器IPMI无法监控存储RAID卡问题." target="_blank">浪潮 M5系列服务器IPMI无法监控存储RAID卡问题.</a>
                        <span class="text-muted">Songxwn</span>
<a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">硬件服务器</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>简介浪潮的M5代服务器,可能有WebBMC无法查看存储RAID/SAS卡状态的情况,可以通过以下方式修改。修改完成后重启BMC即可生效。ESXiIPMITools使用:https://songxwn.com/ESXi8_IPMI/(Linux也可以直接使用)Linux/ESXiIPMITool下载:https://songxwn.com/file/ipmitoolWindows下载:https:/</div>
                    </li>
                    <li><a href="/article/1773585584300818432.htm"
                           title="下载Android源码" target="_blank">下载Android源码</a>
                        <span class="text-muted">赛非斯</span>

                        <div>repoinit-uhttps://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest-bandroid-10.0.0_r411.首先下载repo:a)终端运行gitclonegit://codeaurora.org/tools/repo.gitb)mkdir~/binc)拷贝repo到~/bin下面,修改repo权限,chmoda+x~</div>
                    </li>
                    <li><a href="/article/1773571984861495296.htm"
                           title="llama.cpp 编译安装@Ubuntu" target="_blank">llama.cpp 编译安装@Ubuntu</a>
                        <span class="text-muted">skywalk8163</span>
<a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E5%AE%9E%E8%B7%B5/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/llama/1.htm">llama</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>在Kylin和Ubuntu编译llama.cpp,具体参考:llama模型c语言推理@FreeBSD-CSDN博客现在代码并编译:gitclonehttps://github.com/ggerganov/llama.cppcdllama.cppmkdirbuildcdbuildcmake..cmake--build.--configRelease#可选安装makeinstall#或可选添加路径ex</div>
                    </li>
                    <li><a href="/article/1773552600176721920.htm"
                           title="1.计算机处理器架构+嵌入式处理器架构及知识" target="_blank">1.计算机处理器架构+嵌入式处理器架构及知识</a>
                        <span class="text-muted">vv 啊</span>
<a class="tag" taget="_blank" href="/search/arm-linux%E5%AD%A6%E4%B9%A0/1.htm">arm-linux学习</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a>
                        <div>目录一:x86-64处理器架构二:Intel80386处理器(i386)1.i3862.i686三:嵌入式Linux知识:1.MinGW2.GNU计划2.1GNU工具链概述此次只分享英特尔和ADM处理器有关于x86的架构,至于嵌入式处理器架构请查看https://en.wikipedia.org/wiki/List_of_ARM_processors一:x86-64处理器架构x86-64,也称为x</div>
                    </li>
                    <li><a href="/article/1773540138937286656.htm"
                           title="【计算机网络】第 3 问:电路交换、报文交换、分组交换之间的区别?" target="_blank">【计算机网络】第 3 问:电路交换、报文交换、分组交换之间的区别?</a>
                        <span class="text-muted">孤独打铁匠Julian</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA408%E8%80%83%E7%A0%94%E9%9D%A2%E8%AF%95/1.htm">计算机408考研面试</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>电路交换、报文交换、分组交换之间的区别?省流图详解电路交换电路交换的优点电路交换的缺点建立连接时间长的原因报文交换报文交换的优点报文交换的缺点分组交换分组交换的优点分组交换的缺点比较总结省流图详解电路交换在进行数据传输前,两个结点之间必须先建立一条专用(双方独占)的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径可能经过许多中间结点。这一路径在整个数据传输期间一直被独占,直到通信</div>
                    </li>
                    <li><a href="/article/1773525411561537536.htm"
                           title="用XMLHttpRequest发送和接收JSON数据" target="_blank">用XMLHttpRequest发送和接收JSON数据</a>
                        <span class="text-muted">潭池先生</span>
<a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/XMLHttpRequest/1.htm">XMLHttpRequest</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>百度的AI回答了一个案例:varxhr=newXMLHttpRequest();varurl="your_endpoint_url";//替换为你的API端点vardata=JSON.stringify({key1:"value1",key2:"value2"});xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type","appl</div>
                    </li>
                    <li><a href="/article/1773505290910629888.htm"
                           title="【转载】SSD测试第一神器——FIO" target="_blank">【转载】SSD测试第一神器——FIO</a>
                        <span class="text-muted">running_sheep</span>

                        <div>转自:[http://www.ssdfans.com]对于SSD性能测试来说,最好的工具莫过于FIO了。FIO是Jens开发的一个开源测试工具,功能非常强大,本文就只介绍其中一些基本功能。线程,队列深度,Offset,同步异步,DirectIO,BIO使用FIO之前,首先要有一些SSD性能测试的基础知识。线程指的是同时有多少个读或写任务在并行执行,一般来说,CPU里面的一个核心同一时间只能运行一个</div>
                    </li>
                    <li><a href="/article/1773504784859463680.htm"
                           title="子非鱼,焉知鱼之乐" target="_blank">子非鱼,焉知鱼之乐</a>
                        <span class="text-muted">零启若</span>

                        <div>在如今网络爆飞信息发达的时代,我们会在各种论坛以及平台看到不计其数的评论,有一些人在评论的时候总是以高尚的道德为标准和底线去衡量,评判,甚至谩骂他人。并且觉得自己充满正义感,义正辞严。这些人姑且不说有没有考虑到别人的感受,更没有感同身受的体验,只是凭借着言论自由,甚至是一种猥琐和变相的心理发泄。就像人和动物一样,人类总是以高等动物自居,高高在上,并且认为人类吃食各种动物都是理所当然,动物就是给人吃</div>
                    </li>
                    <li><a href="/article/1773500735770656768.htm"
                           title="大创项目推荐 深度学习 opencv python 公式识别(图像识别 机器视觉)" target="_blank">大创项目推荐 深度学习 opencv python 公式识别(图像识别 机器视觉)</a>
                        <span class="text-muted">laafeer</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>文章目录0前言1课题说明2效果展示3具体实现4关键代码实现5算法综合效果6最后0前言优质竞赛项目系列,今天要分享的是基于深度学习的数学公式识别算法实现该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:4分创新点:4分更多资料,项目分享:https://gitee.com/dancheng-senior/postgraduate1课题</div>
                    </li>
                    <li><a href="/article/1773496455663779840.htm"
                           title="关于举办第十五届蓝桥杯全国软件和信息技术专业人才大赛项目实战赛的通知" target="_blank">关于举办第十五届蓝桥杯全国软件和信息技术专业人才大赛项目实战赛的通知</a>
                        <span class="text-muted">QSNKJJSW</span>
<a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/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/%E9%9D%92%E5%B0%91%E5%B9%B4%E7%BC%96%E7%A8%8B/1.htm">青少年编程</a><a class="tag" taget="_blank" href="/search/%E6%97%A0%E4%BA%BA%E6%9C%BA/1.htm">无人机</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a><a class="tag" taget="_blank" href="/search/%E7%A7%91%E6%8A%80/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>各高等院校及相关单位:为贯彻落实《中国教育现代化2035》和《国务院关于印发新时期促进集成电路产业和软件产业高质量发展若干政策的通知》有关精神,为我国制造强国和网络强国战略提供人才支持,提高学生自主创新意识和工程实践能力,工业和信息化部人才交流中心决定举办第十五届蓝桥杯全国软件和信息技术专业人才大赛——项目实战赛。大赛连续四年入围中国高等教育学会“全国普通高校大学生竞赛排行榜”竞赛项目榜单。现将项</div>
                    </li>
                    <li><a href="/article/1773495447948689408.htm"
                           title="docker怎么端口映射" target="_blank">docker怎么端口映射</a>
                        <span class="text-muted">Lance_mu</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>1、默认固定的端口#Web服务器:WebApache或Nginx通常使用80端口HTTP:80HTTPS:443#数据库服务器MySQL:3306PostgreSQL:5432MongoDB:27017Redis:6379#邮件服务器SMTP:25POP3:110IMAP:143#其他服务SSH:22FTP:21DNS(域名解析):53代理服务器Squid:3128版本控制系统Git:9418(S</div>
                    </li>
                    <li><a href="/article/1773475811752476672.htm"
                           title="ES-LTR粗排模块" target="_blank">ES-LTR粗排模块</a>
                        <span class="text-muted">poins</span>
<a class="tag" taget="_blank" href="/search/jenkins/1.htm">jenkins</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>ES-LTR粗排模块官方资源:https://github.com/HeiBoWang/elasticsearch-learning-to-rankElasticsearch学习排名插件使用机器学习提高搜索相关性排名。它为维基媒体基金会和Snagajob等地方的搜索提供了动力!这个插件有什么功能此插件:允许您在Elasticsearch中存储特征(Elasticsearch查询模板)记录特征得分(</div>
                    </li>
                    <li><a href="/article/1773471029155397632.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/%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><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/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a>
                        <div>01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。02怎样规划网络安全如果你是一</div>
                    </li>
                    <li><a href="/article/1773470776930926592.htm"
                           title="黑客(网络安全)技术自学30天" target="_blank">黑客(网络安全)技术自学30天</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/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a>
                        <div>01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。02怎样规划网络安全如果你是一</div>
                    </li>
                    <li><a href="/article/1773467586458091520.htm"
                           title="Jenkins安装" target="_blank">Jenkins安装</a>
                        <span class="text-muted">lettger</span>

                        <div>1.第一步sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat/jenkins.reposudorpm--importhttps://pkg.jenkins.io/redhat/jenkins.io.key2.第二步sudoyuminstalljenkins3.第三步servicejenkinsstatus|sta</div>
                    </li>
                    <li><a href="/article/1773449816127373312.htm"
                           title="生活中的很多事是既令人生气又令人伤感,但却还无可奈何" target="_blank">生活中的很多事是既令人生气又令人伤感,但却还无可奈何</a>
                        <span class="text-muted">城中隐士</span>

                        <div>今天一打开手机,就看到姨娘家的姐姐兰兰在抖音上发了一则信息,信息内容如下:“我绝对不是我爸妈亲生的,不知他们是从哪儿把我捡回来的”。图源网络,侵则必删今天一大早,天刚蒙蒙亮,姨父就着急莫慌给姨妈家姐姐来一电话,说是家里今天有急事,喊她赶紧回去。还没等姐姐反应过来,姨父就草草地挂断了电话。吓得姐姐立马清醒,以为家里不知出了多大的事?她赶紧从床上爬起来以最快速度第一时间从温江赶到中江。等她顶着烈日,风</div>
                    </li>
                    <li><a href="/article/1773449688918327296.htm"
                           title="李金清焦点网络初级班34期 约练46次,坚持分享79天" target="_blank">李金清焦点网络初级班34期 约练46次,坚持分享79天</a>
                        <span class="text-muted">清水清水</span>

                        <div>约练心得咨询中,忍受不了沉默;聊天中,忍受不了寂静;工作中,忍受不了闲暇。自己心中按耐不住的着急,总想一步做的最好,总想让大家开心,总怕别人尴尬,总怕冷场,,,这些都充满着习惯,充满着认为自己该做的事。咨询中的沉默是为了让来访者时间考虑思索,更好的打开,有力咨询的开展。聊天中的静下来,是为了对上个问题的思考和对下个问题的开展留有空间。工作中的闲暇,是为了让自己有时间静下来整理和积累,为了以后的忙而</div>
                    </li>
                    <li><a href="/article/1773436283402649600.htm"
                           title="natapp内网穿透工具" target="_blank">natapp内网穿透工具</a>
                        <span class="text-muted">万变不离其宗_8</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7/1.htm">工具</a><a class="tag" taget="_blank" href="/search/%E5%85%B6%E4%BB%96/1.htm">其他</a>
                        <div>1.NATAPP1分钟快速新手图文教程https://natapp.cn/article/natapp_newbie2.下载https://natapp.cn/#download3.使用本地配置文件config.ini,下载地址如下:https://natapp.cn/article/config_ini</div>
                    </li>
                    <li><a href="/article/1773411232229949440.htm"
                           title="【译】kube-router-8 操作指南" target="_blank">【译】kube-router-8 操作指南</a>
                        <span class="text-muted">niufw_qb</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/k8s/1.htm">k8s</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>kube-router的健康检查kube-router目前的基本健康检查方式是,每次主循环成功完成后,每个控制器都会向healthcontroller发送心跳。健康端口默认为20244,但可通过启动选项进行更改。健康检查路径为/healthz.--health-port=如果端口设置为0(零),HTTP端点将不可用,但健康控制器仍将运行,并将错过的心跳打印到kube-router的STDERR中。</div>
                    </li>
                    <li><a href="/article/1773410350826323968.htm"
                           title="物联网边缘网关有哪些优势?-天拓四方" target="_blank">物联网边缘网关有哪些优势?-天拓四方</a>
                        <span class="text-muted">北京天拓四方科技股份有限公司</span>
<a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a><a class="tag" taget="_blank" href="/search/%E5%85%B6%E4%BB%96/1.htm">其他</a><a class="tag" taget="_blank" href="/search/%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97/1.htm">边缘计算</a>
                        <div>随着物联网技术的快速发展,越来越多的设备接入网络,数据交互日益频繁,对数据处理和传输的要求也越来越高。在这样的背景下,物联网边缘网关应运而生,以其低延迟、减少带宽消耗、提高数据质量和安全性等优势,为物联网应用提供了强大的支持。物联网边缘网关的应用场景广泛,几乎涵盖了所有需要实时数据处理和传输的领域。在工业场景中,边缘计算网关可以实时处理海量传感器和设备的数据,实现对运行、制造过程的全环节实时监控、</div>
                    </li>
                    <li><a href="/article/1773397763799711744.htm"
                           title="15:00面试,15:06就出来了,问的问题有点变态。。。" target="_blank">15:00面试,15:06就出来了,问的问题有点变态。。。</a>
                        <span class="text-muted">爱学习的执念</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%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%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E9%9D%A2%E8%AF%95/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>
                        <div>从小厂出来,没想到在另一家公司又寄了。到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到9月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,这下搞的饭都吃不起了。还在有个朋友内推我去了一家互联网公司,兴冲冲见面试官,没想到一道题把我给问死了:如果模块请求http改为了https,测试方案应该如何制定,修改?感觉好简单的题,硬是没有答出来,早知道好好</div>
                    </li>
                    <li><a href="/article/1773363905746239488.htm"
                           title="Element-UI中el-time-picker时间选择器无法选择" target="_blank">Element-UI中el-time-picker时间选择器无法选择</a>
                        <span class="text-muted">爱健身的小刘同学</span>
<a class="tag" taget="_blank" href="/search/bug/1.htm">bug</a><a class="tag" taget="_blank" href="/search/Element/1.htm">Element</a><a class="tag" taget="_blank" href="/search/Vue%E7%B3%BB%E5%88%97/1.htm">Vue系列</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/elementui/1.htm">elementui</a>
                        <div>前言前几天开发时,在做一个时间选择时,遇到了无法选中时间的问题在网络上找了解决方法,特此记录一下解决方法我的代码结构营业时间时间选择不上的原因是因为初始值问题很有可能是最开始赋值为空数组了所以有3个解决方法1.设置为nullbusinessTimeInfo:null2.设置当前时间businessTimeInfo:[newDate(newDate()),newDate(newDate())](默认</div>
                    </li>
                    <li><a href="/article/1773356656105684992.htm"
                           title="计算机网络知识点汇总" target="_blank">计算机网络知识点汇总</a>
                        <span class="text-muted">蓝小俊</span>

                        <div>第1章概述P36习题3、7、14、15、17、22、24、262.“协议”与“服务”的异同点?答:(1)协议是控制两个对等实体进行通信的规则的集合。在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下面一层提供服务。(2)协议和服务的概念的区分:1、协议的实现保证了能够向上一层提供服务。本层的服务用户只能看见服务而无法看见下面的协议。下面的协议对上面的服</div>
                    </li>
                    <li><a href="/article/1773347164047605760.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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><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/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a>
                        <div>01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。02怎样规划网络安全如果你是一</div>
                    </li>
                    <li><a href="/article/1773343638902865920.htm"
                           title="Python+Requests模拟发送GET请求" target="_blank">Python+Requests模拟发送GET请求</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%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/1.htm">技术分享</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>模拟发送GET请求前置条件:导入requests库一、发送不带参数的get请求代码如下:以百度首页为例importrequests#发送get请求response=requests.get(url="http://www.baidu.com")print(response.content.decode("utf-8"))#以utf-8的编码输出内容二、发送带参数的get请求发送带参数的get请求有</div>
                    </li>
                    <li><a href="/article/1773306760505917440.htm"
                           title="PaperWeekly" target="_blank">PaperWeekly</a>
                        <span class="text-muted">sapienst</span>
<a class="tag" taget="_blank" href="/search/Papers/1.htm">Papers</a><a class="tag" taget="_blank" href="/search/PaperwithCode/1.htm">PaperwithCode</a><a class="tag" taget="_blank" href="/search/General/1.htm">General</a><a class="tag" taget="_blank" href="/search/ML/1.htm">ML</a>
                        <div>1.Python软件包解决DL在未见过的数据分布下性能差的问题:(1)神经网络和损失分离的模块化设计(2)强大便捷的基准测试能力(3)易于使用但难以修改(4)github:https://github.com/marrlab/domainlabTrainer和Models之间是什么关系Trainer和Models是DomainLab中的两个核心概念。Trainer是一个用于指导数据流向模型并计算S</div>
                    </li>
                    <li><a href="/article/1773302480382263296.htm"
                           title="计算机常用端口号" target="_blank">计算机常用端口号</a>
                        <span class="text-muted">王依硕</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a>
                        <div>ftp:(20端口)用于ftp服务,用于数据传输。ftp:(21端口)用于文件上传和下载。ssh:(22端口)用于安全Shell访问和文件传输。telnet:(23端口)用于远程命令行计算机管理。smtp:(25端口)用于发送电子邮件。dns:(53端口)用于域名解析。dhcp:(67和68端口)用于动态分配IP地址和配置网络参数。tftp:(69端口)使用udp连接。finger:(79端口)是</div>
                    </li>
                                <li><a href="/article/42.htm"
                                       title="jQuery 键盘事件keydown ,keypress ,keyup介绍" target="_blank">jQuery 键盘事件keydown ,keypress ,keyup介绍</a>
                                    <span class="text-muted">107x</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/keydown/1.htm">keydown</a><a class="tag" taget="_blank" href="/search/keypress/1.htm">keypress</a><a class="tag" taget="_blank" href="/search/keyup/1.htm">keyup</a>
                                    <div>本文章总结了下些关于jQuery 键盘事件keydown ,keypress ,keyup介绍,有需要了解的朋友可参考。 
一、首先需要知道的是:  1、keydown()  keydown事件会在键盘按下时触发.  2、keyup()     代码如下 复制代码    
$('input').keyup(funciton(){      </div>
                                </li>
                                <li><a href="/article/169.htm"
                                       title="AngularJS中的Promise" target="_blank">AngularJS中的Promise</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/Promise/1.htm">Promise</a>
                                    <div>一.Promise 
        Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性。其核心是,promise是一个带有then()函数的对象。 
        为了展示它的优点,下面来看一个例子,其中需要获取用户当前的配置文件: 
var cu</div>
                                </li>
                                <li><a href="/article/296.htm"
                                       title="c++ 用数组实现栈类" target="_blank">c++ 用数组实现栈类</a>
                                    <span class="text-muted">CrazyMizzz</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a>
                                    <div>#include<iostream>
#include<cassert>
using namespace std;

template<class T, int SIZE = 50>
class Stack{
private:
	T list[SIZE];//数组存放栈的元素
	int top;//栈顶位置

public:
	Stack(</div>
                                </li>
                                <li><a href="/article/423.htm"
                                       title="java和c语言的雷同" target="_blank">java和c语言的雷同</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/%E9%80%92%E5%BD%92/1.htm">递归</a><a class="tag" taget="_blank" href="/search/scaner/1.htm">scaner</a>
                                    <div>软件启动时的初始化代码,加载用户信息2015年5月27号 
从头学java二 
1、语言的三种基本结构:顺序、选择、循环。废话不多说,需要指出一下几点: 
     a、return语句的功能除了作为函数返回值以外,还起到结束本函数的功能,return后的语句 
不会再继续执行。 
     b、for循环相比于whi</div>
                                </li>
                                <li><a href="/article/550.htm"
                                       title="LINUX环境并发服务器的三种实现模型" target="_blank">LINUX环境并发服务器的三种实现模型</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。 
1  循环服务器与并发服务器模型 
在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。 
目前最常用的服务器模型有: 
·循环服务器:服务器在同一时刻只能响应一个客户端的请求 
·并发服务器:服</div>
                                </li>
                                <li><a href="/article/677.htm"
                                       title="Oracle数据库查询指令" target="_blank">Oracle数据库查询指令</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/oracle%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">oracle数据库</a>
                                    <div>20140920 
  
单表查询 
-- 查询************************************************************************************************************ 
-- 使用scott用户登录 
  
-- 查看emp表 
  
desc emp 
  
</div>
                                </li>
                                <li><a href="/article/804.htm"
                                       title="ext右下角浮动窗口" target="_blank">ext右下角浮动窗口</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/ext/1.htm">ext</a>
                                    <div>第一种 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/</div>
                                </li>
                                <li><a href="/article/931.htm"
                                       title="浅谈REDIS数据库的键值设计" target="_blank">浅谈REDIS数据库的键值设计</a>
                                    <span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>http://www.cnblogs.com/aidandan/ 
原文地址:http://www.hoterran.info/redis_kv_design 
 
丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。 
 </div>
                                </li>
                                <li><a href="/article/1058.htm"
                                       title="maven编译可执行jar包" target="_blank">maven编译可执行jar包</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven 
 
 
<build>
  <plugins>
    <plugin>
      <artifactId>maven-asse</div>
                                </li>
                                <li><a href="/article/1185.htm"
                                       title="人力资源在现代企业中的作用" target="_blank">人力资源在现代企业中的作用</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/HR+%E4%BC%81%E4%B8%9A%E7%AE%A1%E7%90%86/1.htm">HR 企业管理</a>
                                    <div>//人力资源在在企业中的作用人力资源为什么会存在,人力资源究竟是干什么的 人力资源管理是对管理模式一次大的创新,人力资源兴起的原因有以下点: 工业时代的国际化竞争,现代市场的风险管控等等。所以人力资源 在现代经济竞争中的优势明显的存在,人力资源在集团类公司中存在着 明显的优势(鸿海集团),有一次笔者亲自去体验过红海集团的招聘,只 知道人力资源是管理企业招聘的 当时我被招聘上了,当时给我们培训 的人</div>
                                </li>
                                <li><a href="/article/1312.htm"
                                       title="Linux自启动设置详解" target="_blank">Linux自启动设置详解</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 
阅读之前建议先看一下附图。 
本文中假设inittab中设置的init tree为: 
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc</div>
                                </li>
                                <li><a href="/article/1439.htm"
                                       title="Spring Aop Schema实现" target="_blank">Spring Aop Schema实现</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a>
                                    <div>本例使用的是Spring2.5 
1.Aop配置文件spring-aop.xml 
<?xml version="1.0" encoding="UTF-8"?>  
<beans  
    xmlns="http://www.springframework.org/schema/beans"  
    xmln</div>
                                </li>
                                <li><a href="/article/1566.htm"
                                       title="【Gson七】Gson预定义类型适配器" target="_blank">【Gson七】Gson预定义类型适配器</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a>
                                    <div>Gson提供了丰富的预定义类型适配器,在对象和JSON串之间进行序列化和反序列化时,指定对象和字符串之间的转换方式, 
  DateTypeAdapter 
  
public final class DateTypeAdapter extends TypeAdapter<Date> {
  public static final TypeAdapterFacto</div>
                                </li>
                                <li><a href="/article/1693.htm"
                                       title="【Spark八十八】Spark Streaming累加器操作(updateStateByKey)" target="_blank">【Spark八十八】Spark Streaming累加器操作(updateStateByKey)</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/update/1.htm">update</a>
                                    <div>在实时计算的实际应用中,有时除了需要关心一个时间间隔内的数据,有时还可能会对整个实时计算的所有时间间隔内产生的相关数据进行统计。 
比如: 对Nginx的access.log实时监控请求404时,有时除了需要统计某个时间间隔内出现的次数,有时还需要统计一整天出现了多少次404,也就是说404监控横跨多个时间间隔。 
  
Spark Streaming的解决方案是累加器,工作原理是,定义</div>
                                </li>
                                <li><a href="/article/1820.htm"
                                       title="linux系统下通过shell脚本快速找到哪个进程在写文件" target="_blank">linux系统下通过shell脚本快速找到哪个进程在写文件</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>一个文件正在被进程写 我想查看这个进程 文件一直在增大 找不到谁在写 使用lsof也没找到 
这个问题挺有普遍性的,解决方法应该很多,这里我给大家提个比较直观的方法。 
linux下每个文件都会在某个块设备上存放,当然也都有相应的inode, 那么透过vfs.write我们就可以知道谁在不停的写入特定的设备上的inode。 
幸运的是systemtap的安装包里带了inodewatch.stp,位</div>
                                </li>
                                <li><a href="/article/1947.htm"
                                       title="java-两种方法求第一个最长的可重复子串" target="_blank">java-两种方法求第一个最长的可重复子串</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/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>
import java.util.Arrays;
import java.util.Collections;
import java.util.List;


public class MaxPrefix {

	
	public static void main(String[] args) {
		String str="abbdabcdabcx";
</div>
                                </li>
                                <li><a href="/article/2074.htm"
                                       title="Netty源码学习-ServerBootstrap启动及事件处理过程" target="_blank">Netty源码学习-ServerBootstrap启动及事件处理过程</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/netty/1.htm">netty</a>
                                    <div>Netty是采用了Reactor模式的多线程版本,建议先看下面这篇文章了解一下Reactor模式: 
 
http://bylijinnan.iteye.com/blog/1992325 
 
Netty的启动及事件处理的流程,基本上是按照上面这篇文章来走的 
文章里面提到的操作,每一步都能在Netty里面找到对应的代码 
其中Reactor里面的Acceptor就对应Netty的ServerBo</div>
                                </li>
                                <li><a href="/article/2201.htm"
                                       title="servelt filter listener 的生命周期" target="_blank">servelt filter listener 的生命周期</a>
                                    <span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/filter/1.htm">filter</a><a class="tag" taget="_blank" href="/search/listener/1.htm">listener</a><a class="tag" taget="_blank" href="/search/servelt/1.htm">servelt</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/1.htm">生命周期</a>
                                    <div>1. servlet    当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的 init(ServletConfig config)做一些初始化的工作,然后调用它的service方法处理请求。当第二次请求这个servlet资源时,servlet容器就不在创建实例,而是直接调用它的service方法处理请求,也就是说</div>
                                </li>
                                <li><a href="/article/2328.htm"
                                       title="jmpopups获取input元素值" target="_blank">jmpopups获取input元素值</a>
                                    <span class="text-muted">ctrain</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a>
                                    <div>jmpopups 获取弹出层form表单 
首先,我有一个div,里面包含了一个表单,默认是隐藏的,使用jmpopups时,会弹出这个隐藏的div,其实jmpopups是将我们的代码生成一份拷贝。 
当我直接获取这个form表单中的文本框时,使用方法:$('#form input[name=test1]').val();这样是获取不到的。 
我们必须到jmpopups生成的代码中去查找这个值,$(</div>
                                </li>
                                <li><a href="/article/2455.htm"
                                       title="vi查找替换命令详解" target="_blank">vi查找替换命令详解</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/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/%E6%9B%BF%E6%8D%A2/1.htm">替换</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E6%89%BE/1.htm">查找</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a>
                                    <div>一、查找 
 
查找命令 
 
/pattern<Enter> :向下查找pattern匹配字符串 
?pattern<Enter>:向上查找pattern匹配字符串 
使用了查找命令之后,使用如下两个键快速查找: 
n:按照同一方向继续查找 
N:按照反方向查找 
 
字符串匹配 
 
pattern是需要匹配的字符串,例如: 
 
1:  /abc<En</div>
                                </li>
                                <li><a href="/article/2582.htm"
                                       title="对网站中的js,css文件进行打包" target="_blank">对网站中的js,css文件进行打包</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%89%93%E5%8C%85/1.htm">打包</a>
                                    <div>一,为什么要用smarty进行打包 
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。 
为什么要进行打包呢,主要目的是为了合理的管理自己的代码 。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的J</div>
                                </li>
                                <li><a href="/article/2709.htm"
                                       title="php Yii: 出现undefined offset 或者 undefined index解决方案" target="_blank">php Yii: 出现undefined offset 或者 undefined index解决方案</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/undefined/1.htm">undefined</a>
                                    <div>在开发Yii 时,在程序中定义了如下方式: 
       if($this->menuoption[2] === 'test'),那么在运行程序时会报:undefined offset:2,这样的错误主要是由于php.ini 里的错误等级太高了,在windows下错误等级</div>
                                </li>
                                <li><a href="/article/2836.htm"
                                       title="linux 文件格式(1) sed工具" target="_blank">linux 文件格式(1) sed工具</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux+sed%E5%B7%A5%E5%85%B7/1.htm">linux sed工具</a><a class="tag" taget="_blank" href="/search/sed%E5%B7%A5%E5%85%B7/1.htm">sed工具</a><a class="tag" taget="_blank" href="/search/linux+sed%E8%AF%A6%E8%A7%A3/1.htm">linux sed详解</a>
                                    <div>转载请出自出处:
http://eksliang.iteye.com/blog/2106082  
简介 
      sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾</div>
                                </li>
                                <li><a href="/article/2963.htm"
                                       title="Android应用程序获取系统权限" target="_blank">Android应用程序获取系统权限</a>
                                    <span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>引用   
如何使Android应用程序获取系统权限 
 
 
        第一个方法简单点,不过需要在Android系统源码的环境下用make来编译: 
 
        1. 在应用程序的AndroidManifest.xml中的manifest节点</div>
                                </li>
                                <li><a href="/article/3090.htm"
                                       title="HoverTree开发日志之验证码" target="_blank">HoverTree开发日志之验证码</a>
                                    <span class="text-muted">hvt</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a><a class="tag" taget="_blank" href="/search/webform/1.htm">webform</a>
                                    <div>HoverTree是一个ASP.NET的开源CMS,目前包含文章系统,图库和留言板功能。代码完全开放,文章内容页生成了静态的HTM页面,留言板提供留言审核功能,文章可以发布HTML源代码,图片上传同时生成高品质缩略图。推出之后得到许多网友的支持,再此表示感谢!留言板不断收到许多有益留言,但同时也有不少广告,因此决定在提交留言页面增加验证码功能。ASP.NET验证码在网上找,如果不是很多,就是特别多</div>
                                </li>
                                <li><a href="/article/3217.htm"
                                       title="JSON API:用 JSON 构建 API 的标准指南中文版" target="_blank">JSON API:用 JSON 构建 API 的标准指南中文版</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/json/1.htm">json</a>
                                    <div>译文地址:https://github.com/justjavac/json-api-zh_CN 
如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 就是你的 anti-bikeshedding 武器。 
通过遵循共同的约定,可以提高开发效率,利用更普遍的工具,可以是你更加专注于开发重点:你的程序。 
基于 JSON API 的客户端还能够充分利用缓存,</div>
                                </li>
                                <li><a href="/article/3344.htm"
                                       title="数据结构随记_2" target="_blank">数据结构随记_2</a>
                                    <span class="text-muted">lx.asymmetric</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                                    <div>第三章 栈与队列 
一.简答题 
1. 在一个循环队列中,队首指针指向队首元素的  前一个    位置。  
2.在具有n个单元的循环队列中,队满时共有  n-1  个元素。  
3. 向栈中压入元素的操作是先  移动栈顶指针&n</div>
                                </li>
                                <li><a href="/article/3471.htm"
                                       title="Linux下的监控工具dstat" target="_blank">Linux下的监控工具dstat</a>
                                    <span class="text-muted">网络接口</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>1) 工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是, </div>
                                </li>
                                <li><a href="/article/3598.htm"
                                       title="C 语言初级入门--二维数组和指针" target="_blank">C 语言初级入门--二维数组和指针</a>
                                    <span class="text-muted">1140566087</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/c%2Fc%2B%2B/1.htm">c/c++</a><a class="tag" taget="_blank" href="/search/%E6%8C%87%E9%92%88/1.htm">指针</a>
                                    <div>/* 
 二维数组的定义和二维数组元素的引用 
 
 二维数组的定义: 
 当数组中的每个元素带有两个下标时,称这样的数组为二维数组; 
 (逻辑上把数组看成一个具有行和列的表格或一个矩阵); 
 语法: 
 类型名 数组名[常量表达式1][常量表达式2] 
 
 二维数组的引用: 
 引用二维数组元素时必须带有两个下标,引用形式如下: 
 例如: 
 int a[3][4];  引用:</div>
                                </li>
                                <li><a href="/article/3725.htm"
                                       title="10点睛Spring4.1-Application Event" target="_blank">10点睛Spring4.1-Application Event</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/application/1.htm">application</a>
                                    <div>10.1 Application Event 
 
 Spring使用Application Event给bean之间的消息通讯提供了手段 
 应按照如下部分实现bean之间的消息通讯 
   
   继承ApplicationEvent类实现自己的事件 
   实现继承ApplicationListener接口实现监听事件 
   使用ApplicationContext发布消息 
    
 </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>