web基础+HTTP协议+httpd详细配置

目目录录

  • 一、Web基础
    • 1.1 HTML概述
      • 1.1.1 HTML的文件结构
      • 1.1.2 HTML中的部分基本标签
    • 1.3 MIME
    • 1.4 URI 和 URL
      • 1.4 定义
      • 1.4.2 URI 和 URL 的区别
  • 二、静态资源和动态资源
    • 2.1 静态资源
    • 2.2 动态资源
  • 三、HTTP协议
    • 3.1 HTTP协议简介
    • 3.2 HTTP协议版本
    • 3.2 HTTP方法
    • 3.3 HTTP请求访问的完整过程
    • 3.4 HTTP状态码
    • 3.5 HTTP的请求报文和响应报文
      • 3.5.1 请求报文
      • 3.5.2 响应报文
    • 3.6 HTTP连接优化
  • 四、httpd概述
    • 4.1 安装
    • 4.2 httpd相关文件
      • 4.2.1 配置文件
      • 4.2.2 服务单元文件和主服务器程序文件
      • 4.2.3 模块文件
    • 4.3 httpd服务控制和启动(命令部分)
  • 五、httpd配置
    • 5.1 虚拟主机
      • 5.1.1 基于ip地址
        • 5.1.1.1 原理
        • 5.1.1.2 模拟实现
      • 5.1.2 基于端口地址
        • 5.1.2.1 原理
        • 5.1.2.2 模拟实现
      • 5.1.3 基于域名
        • 5.1.3.1 原理
        • 5.1.3.2 模拟实现
    • 5. 2 三种工作模式
      • 5.2.1 Worker模式
      • 5.2.2 Event模式
      • 5.2.3 Pre-Fork模式
  • 六、Cookie和Session
    • 6.1 Cookie
    • 6.2 Session

在这里插入图片描述

一、Web基础

1.1 HTML概述

HTML(全称为Hypertext Markup Language)是一种标记语言,用于创建和组织Web页面的结构和内容。

HTML是构建Web页面的基础,定义了页面的结构和内容,通过标记和元素来实现。

1.1.1 HTML的文件结构

 <html>
     <head>网页的头部信息head>
     <body>网页内容body>
 html>

1.1.2 HTML中的部分基本标签

基本标签 含义
HTML文档的根元素,包含文档的全部内容
文档的头部,通常用于引入样式表、脚本以及设置文档的元信息
</code></td> <td>文档的<font color="blue">标题</font>,显示在浏览器的标题栏或标签页上</td> </tr> <tr> <td><code><body></code></td> <td>文档的<font color="blue">主体部分</font>,包含页面上的可见内容</td> </tr> <tr> <td><code><h1></code>到<code><h6></code></td> <td>标题标签,用于表示不同级别的标题,<code><h1></code>是最高级别的标题</td> </tr> <tr> <td><code><p></code></td> <td>段落标签,用于表示一个段落</td> </tr> <tr> <td><code><a></code></td> <td>链接标签,用于创建一个超链接,并指定链接的目标URL</td> </tr> <tr> <td><code><img></code></td> <td>图像标签,用于插入图像到页面中,并指定图像的源文件路径</td> </tr> <tr> <td><code><ul></code>和<code><li></code></td> <td>无序列表标签,用于创建一个无序列表和列表项</td> </tr> <tr> <td><code><ol></code>和<code><li></code></td> <td>有序列表标签,用于创建一个有序列表和列表项</td> </tr> <tr> <td><code><div></code></td> <td>通用的容器标签,用于分组和组织页面中的内容</td> </tr> <tr> <td><code><span></code></td> <td>内联容器标签,用于对文本的一部分进行特殊处理,如应用样式或事件</td> </tr> </tbody> </table> <h2>1.3 MIME</h2> <p>MIME是一种互联网标准,是一种用于<font color="blue">标识文件类型</font>的方法。</p> <p>MIME类型由一个<font color="blue">主类型和一个子类型组成</font>,用斜杠(/)分隔,MIME类型的作用是告诉接收方如何解释和处理接收到的文件。</p> <pre><code class="prism language-bash"><span class="token comment">#常见的MIME类型</span> text/html HTML网页 text/plain 纯文本文件 image/jpeg JPEG图像 image/png PNG图像 audio/mpeg MP3音频 video/mp4 MP4视频 </code></pre> <pre><code class="prism language-bash"><span class="token comment">#举个例子</span> 通过指定MIME类型为text/html,服务器可以告诉浏览器接收到的数据是HTML格式的网页,浏览器会相应地解析和显示该网页 </code></pre> <h2>1.4 URI 和 URL</h2> <h3>1.4 定义</h3> <p><font color="orange">URI</font>(Uniform Resource Identifier):统一资源标识,分为URL 和 URN。</p> <p><font color="orange">URL</font>(Uniform Resorce Locator):统一资源定位符,用于描述某服务器某特定资源位置</p> <h3>1.4.2 URI 和 URL 的区别</h3> <ul> <li> <p>定义范围:URI是一个广义的概念,用于标识和命名互联网上的资源,可以是URL、URN或其他形式。URL是URI的一种具体实现形式,用于资源的定位和访问。</p> </li> <li> <p>功能重点:URI强调资源的标识性,用于唯一标识和命名资源。URL则更注重资源的位置性,其中包含了定位和访问资源所需的详细信息。</p> </li> </ul> <p><a href="http://img.e-com-net.com/image/info8/377584aefaa041baaaffc45d3d7944ca.gif" target="_blank"><img src="http://img.e-com-net.com/image/info8/377584aefaa041baaaffc45d3d7944ca.gif" alt="在这里插入图片描述" width="82" height="82"></a></p> <h1>二、静态资源和动态资源</h1> <p>静态资源和动态资源是两种常见的<font color="blue">网络资源类型</font>。</p> <p>静态资源和动态资源的<font color="red">区别</font>在于<font color="red">内容是否固定不变</font>。</p> <h2>2.1 静态资源</h2> <p><font color="red">静态资源</font>指的是在服务器上保存的文件,其<font color="red">内容</font>在请求和传输过程中<font color="red">不发生变化</font>。</p> <p>静态资源可以是图片、CSS样式表、JavaScript文件、HTML文件等。</p> <p>静态资源的请求一般是通过URL直接访问,当客户端发送请求时,服务器直接将这些文件返回给客户端,<font color="red">不进行任何处理</font>。</p> <h2>2.2 动态资源</h2> <p>动态资源则是在服务器端通过执行脚本或程序生成的内容,<font color="red">需要占用服务器的资源</font>。</p> <p>服务器会根据请求中的参数和数据,执行相应的脚本或程序来<font color="red">生成动态内容</font>,然后将生成的内容返回给客户端。</p> <p>动态资源可以是动态网页、API接口等。</p> <p><a href="http://img.e-com-net.com/image/info8/c7fa91e769a7451d83c976e59f75cdd4.gif" target="_blank"><img src="http://img.e-com-net.com/image/info8/c7fa91e769a7451d83c976e59f75cdd4.gif" alt="在这里插入图片描述" width="82" height="82"></a></p> <h1>三、HTTP协议</h1> <h2>3.1 HTTP协议简介</h2> <p>HTTP协议采用了<font color="red">请求/响应模型</font>。</p> <p><font color="blue">客户端向服务器发送一个请求</font>,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。</p> <p><font color="blue">服务器以一个状态行作为响应</font>,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。</p> <h2>3.2 HTTP协议版本</h2> <pre><code class="prism language-bash">http <span class="token number">0.9</span> 功能简陋,仅支持GET方法 </code></pre> <pre><code class="prism language-bash">http <span class="token number">1.0</span> 相较以前版本可以支持POST、HEAD方法,支持HTML文件以外的其他类型,但不支持持久连接 </code></pre> <pre><code class="prism language-bash">http <span class="token number">1.1</span> 支持持久连接,即在一个TCP连接里面完成多个http请求和响应,但是每个请求和响应是按照顺序一一对应的 </code></pre> <pre><code class="prism language-bash">http <span class="token number">2.0</span> 支持完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应( 也支持压缩,服务端主动推送)。 </code></pre> <h2>3.2 HTTP方法</h2> <p>HTTP定义了一组请求方法,用于指定客户端对资源的操作方式,这些<font color="red">请求命令</font>称为HTTP方法。</p> <table> <thead> <tr> <th>方法</th> <th>作用</th> </tr> </thead> <tbody> <tr> <td>GET</td> <td>对服务器资源获取的<font color="red">简单请求</font></td> </tr> <tr> <td>PUT</td> <td>向服务器<font color="red">上传指定的资源</font>,如果资源已存在,则替换为新的内容</td> </tr> <tr> <td>POST</td> <td>向服务器<font color="red">提交数据</font></td> </tr> <tr> <td>DELETE</td> <td><font color="red">删除</font>服务器上的某些资源</td> </tr> <tr> <td>HEAD</td> <td>请求页面的首部,获取资源的元信息</td> </tr> <tr> <td>CONNECT</td> <td>用于ssl隧道的基于代理的请求</td> </tr> <tr> <td>OPTIONS</td> <td>返回所有可用的方法,常用于跨域</td> </tr> <tr> <td>TRACE</td> <td>追踪 请求–响应的传输路径</td> </tr> </tbody> </table> <pre><code class="prism language-bash"><span class="token number">1</span>、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求不会产生副作用。无论进行多少次操作,结果都是一样的。 <span class="token number">2</span>、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,无论进行多少次PUT操作,其结果并没有不同。 <span class="token number">3</span>、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,几乎目前所有的提交操作都是用POST请求的。 <span class="token number">4</span>、DELETE请求顾名思义,就是用来删除某一个资源的。 </code></pre> <h2>3.3 HTTP请求访问的完整过程</h2> <p><a href="http://img.e-com-net.com/image/info8/d69fad402c244574ac2d586b17a752f2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d69fad402c244574ac2d586b17a752f2.jpg" alt="web基础+HTTP协议+httpd详细配置_第1张图片" width="275" height="570" style="border:1px solid black;"></a></p> <h2>3.4 HTTP状态码</h2> <p>HTTP状态码是服务器在处理请求时返回给客户端的<font color="red">数字代码</font>,用于<font color="red">表示请求的处理结果</font>。</p> <p><strong>HTTP协议状态码分类</strong></p> <table> <thead> <tr> <th>状态码首位</th> <th>范围</th> <th>含义</th> </tr> </thead> <tbody> <tr> <td>1xx</td> <td>100-101</td> <td><font color="red">信息提示</font>,表示请求已被接收,需要进一步处理</td> </tr> <tr> <td>2xx</td> <td>200-206</td> <td><font color="red">成功</font>,表示请求已成功处理</td> </tr> <tr> <td>3xx</td> <td>300-305</td> <td><font color="red">重定向</font>,表示需要进一步的操作以完成请求</td> </tr> <tr> <td>4xx</td> <td>400-415</td> <td><font color="red">客户端错误</font>,表示客户端发送的请求有错误</td> </tr> <tr> <td>5xx</td> <td>500-505</td> <td><font color="red">服务器错误</font>,表示服务器在处理请求时发生了错误</td> </tr> </tbody> </table> <p><strong>HTTP协议常用的状态码</strong></p> <table> <thead> <tr> <th>状态码</th> <th>含义</th> </tr> </thead> <tbody> <tr> <td>200</td> <td>一切正常</td> </tr> <tr> <td>301</td> <td>永久重定向</td> </tr> <tr> <td>302</td> <td>临时重定向</td> </tr> <tr> <td>307</td> <td>浏览器内部重定向</td> </tr> <tr> <td>401</td> <td>用户名或密码错误</td> </tr> <tr> <td>403</td> <td>禁止访问(客户端IP地址被拒绝)</td> </tr> <tr> <td><font color="red">404</font></td> <td><font color="red">请求的资源在服务器上不存在</font></td> </tr> <tr> <td>414</td> <td>请求URL头部过长</td> </tr> <tr> <td>500</td> <td>服务器内部错误。比如脚本错误,编程语言语法错误</td> </tr> <tr> <td><font color="red">502</font></td> <td><font color="red">无效网关</font></td> </tr> <tr> <td><font color="red">503</font></td> <td>服务器暂时无法处理请求,通常用于服务器维护或过载</td> </tr> <tr> <td><font color="red">504</font></td> <td>网关请求超时。程序执行时间过长导致响应超时,例如程序需要执行20秒,而nginx最大响应等待时间为10秒,这样就会出现超时。</td> </tr> </tbody> </table> <pre><code class="prism language-bash"><span class="token comment">#产生502(无效网关)的原因:</span> 数据包没有送到网卡,网络问题; 数据包送进去了(交换机能抓到包),但是网卡没收到,网卡问题或防火墙问题; 网卡接收到了,处理不了,服务问题。(比如服务器当前连接太多,响应太慢;页面素材太多,带宽不够。) </code></pre> <h2>3.5 HTTP的请求报文和响应报文</h2> <h3>3.5.1 请求报文</h3> <p><a href="http://img.e-com-net.com/image/info8/9854def868e245a49a056e91fa1ec52e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9854def868e245a49a056e91fa1ec52e.jpg" alt="web基础+HTTP协议+httpd详细配置_第2张图片" width="603" height="383" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token comment">#request 报文格式 </span> <span class="token operator"><</span>method<span class="token operator">></span> <span class="token operator"><</span>request-URL<span class="token operator">></span> <span class="token operator"><</span>version<span class="token operator">></span> <span class="token operator"><</span>headers<span class="token operator">></span> <span class="token operator"><</span>entity-body<span class="token operator">></span> 第一行为请求行,包含请求方法、请求目标和HTTP协议版本号 第二行为请求头部,包含与请求相关的各种元数据信息 空行用于分隔头部和请求体的空行 第四行为请求体,可选项,包含实际的请求数据 </code></pre> <pre><code class="prism language-bash"><span class="token comment">#举个例子</span> <span class="token function">curl</span> <span class="token number">192.168</span>.2.100 <span class="token operator">|</span><span class="token function">head</span> <span class="token comment">#从此服务器获取内容</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/fba4d0eb2adc41acab8814bf321d28c8.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fba4d0eb2adc41acab8814bf321d28c8.jpg" alt="web基础+HTTP协议+httpd详细配置_第3张图片" width="650" height="184" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token comment">#状态行</span> <span class="token operator">></span> GET / HTTP/1.1 <span class="token comment">#HTTP GET请求,即获取指定路径的内容,请求的路径为根路径("/"),表示请求服务器的默认页面</span> <span class="token comment">#头部字段</span> <span class="token operator">></span> User-Agent: curl/7.29.0 <span class="token comment">#指定客户端使用的User-Agent,该请求由curl/7.29.0发送</span> <span class="token operator">></span> Host: <span class="token number">192.168</span>.2.100 <span class="token comment">#指定了要访问的服务器的主机地址</span> <span class="token operator">></span> Accept: */* <span class="token comment">#指定了客户端可以接受的响应内容的类型,表示客户端可以接受任何类型的内容</span> </code></pre> <h3>3.5.2 响应报文</h3> <p><a href="http://img.e-com-net.com/image/info8/e09764a23a734165b89130714264e46c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e09764a23a734165b89130714264e46c.jpg" alt="web基础+HTTP协议+httpd详细配置_第4张图片" width="574" height="381" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token comment">#response报文格式</span> <span class="token operator"><</span>version<span class="token operator">></span> <span class="token operator"><</span>status<span class="token operator">></span> <span class="token operator"><</span>reason-phrase<span class="token operator">></span> <span class="token operator"><</span>headers<span class="token operator">></span> <span class="token operator"><</span>entity-body<span class="token operator">></span> 第一行为状态行,状态行由协议版本,状态码,状态码描述三部分组成。 第二行为响应头部,响应头包含与响应相关的各种元数据信息。 第三行为空行,用于分隔头部和响应体的空行。 第四行为响应体,可选项,包含实际的响应数据。 </code></pre> <pre><code class="prism language-bash"><span class="token comment">#举个例子</span> <span class="token function">curl</span> <span class="token number">192.168</span>.2.100 <span class="token operator">|</span><span class="token function">head</span> <span class="token comment">#从此服务器获取内容</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/6d1d654aacde45349e326adc94a1b8d9.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/6d1d654aacde45349e326adc94a1b8d9.jpg" alt="web基础+HTTP协议+httpd详细配置_第5张图片" width="650" height="346" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token comment">#响应状态行</span> <span class="token operator"><</span> HTTP/1.1 <span class="token number">403</span> Forbidden <span class="token comment">#表示请求被拒绝,状态码403表示禁止访问</span> <span class="token comment">#头部字段</span> <span class="token operator"><</span> Date: Mon, <span class="token number">21</span> Aug <span class="token number">2023</span> <span class="token number">11</span>:00:34 GMT <span class="token comment">#表示响应的日期和时间</span> <span class="token operator"><</span> Server: Apache/2.4.6 <span class="token punctuation">(</span>CentOS<span class="token punctuation">)</span> <span class="token comment">#表示服务器正在使用的软件名称和版本</span> <span class="token operator"><</span> Last-Modified: Thu, <span class="token number">16</span> Oct <span class="token number">2014</span> <span class="token number">13</span>:20:58 GMT <span class="token comment">#表示所请求资源的最后修改日期和时间</span> <span class="token operator"><</span> ETag: <span class="token string">"1321-5058a1e728280"</span> <span class="token comment">#表示所请求资源的实体标签</span> <span class="token operator"><</span> Accept-Ranges: bytes <span class="token comment">#服务器是否支持断点续传。</span> <span class="token operator"><</span> Content-Length: <span class="token number">4897</span> <span class="token comment">#响应实体主体的长度。</span> <span class="token operator"><</span> Content-Type: text/html<span class="token punctuation">;</span> <span class="token assign-left variable">charset</span><span class="token operator">=</span>UTF-8 <span class="token comment">#实体主体的类型和字符编码,表示响应内容是以UTF-8编码的HTML文本。</span> </code></pre> <h2>3.6 HTTP连接优化</h2> <p>1)并行连接:并行连接通过<font color="red">同时建立多个连接</font> ,使得客户端可以并发地发送多个请求,以提高并发性和响应速度。</p> <p>2)<font color="red">持久连接</font> :持久连接允许客户端和服务器之间在<font color="red">单个连接上发送多个HTTP请求和响应</font> ,而不是每个请求都要重新建立连接。</p> <p>3) 管道化连接:管道化连接是一种<font color="red">在持久连接上发送多个请求而无需等待服务器响应</font> 的机制。</p> <p><a href="http://img.e-com-net.com/image/info8/708c73ecef0a4d76bf425d56113a0e83.gif" target="_blank"><img src="http://img.e-com-net.com/image/info8/708c73ecef0a4d76bf425d56113a0e83.gif" alt="在这里插入图片描述" width="82" height="82"></a></p> <h1>四、httpd概述</h1> <h2>4.1 安装</h2> <pre><code class="prism language-bash">yum <span class="token function">install</span> <span class="token parameter variable">-y</span> httpd <span class="token comment">#安装</span> </code></pre> <h2>4.2 httpd相关文件</h2> <h3>4.2.1 配置文件</h3> <pre><code class="prism language-bash"><span class="token comment">#主配置文件</span> /etc/httpd/conf/httpd.conf <span class="token comment">#子配置文件</span> /etc/httpd/conf.d/*.conf <span class="token comment">#模块加载的配置文件</span> /etc/httpd/conf.d/conf.modules.d/ </code></pre> <p><font color="red">检查配置语法</font>:<code>httpd -t</code> 或 <code>apache2 -t</code></p> <p><font color="red">站点网页文档根目录</font>:<code>/var/www/html</code></p> <h3>4.2.2 服务单元文件和主服务器程序文件</h3> <p><font color="orange">服务单元文件</font></p> <pre><code class="prism language-bash">/usr/lib/systemd/system/httpd.service 配置文件:/etc/sysconfig/httpd </code></pre> <p><font color="orange">主服务器程序文件</font></p> <pre><code class="prism language-bash">/usr/sbin/httpd </code></pre> <h3>4.2.3 模块文件</h3> <pre><code class="prism language-bash">/etc/httpd/modules /usr/lib64/httpd/modules </code></pre> <h2>4.3 httpd服务控制和启动(命令部分)</h2> <pre><code class="prism language-bash"><span class="token comment">#开启自启动/开机自动关闭 httpd服务</span> systemctl <span class="token builtin class-name">enable</span><span class="token operator">|</span>disable httpd.service </code></pre> <p><font color="orange">开启httpd服务</font></p> <pre><code class="prism language-bash">systemctl start httpd.service or apachectl start or <span class="token function">service</span> httpd start </code></pre> <p><font color="orange">重启httpd服务</font></p> <pre><code class="prism language-bash">systemctl start httpd.service or apachectl restart or <span class="token function">service</span> httpd restart </code></pre> <p><font color="orange">停止httpd服务</font></p> <pre><code class="prism language-bash">systemctl stop httpd.service or apachectl stop or <span class="token function">service</span> httpd stop </code></pre> <p><font color="orange">查看httpd服务的运行状态</font></p> <pre><code class="prism language-bash">systemctl status httpd </code></pre> <p><font color="orange">配置文件语法检查</font></p> <pre><code class="prism language-bash">apachectl configtest or <span class="token function">service</span> httpd configtest </code></pre> <p><a href="http://img.e-com-net.com/image/info8/27fb69fa0e4a48d5bd0a306f1836f328.gif" target="_blank"><img src="http://img.e-com-net.com/image/info8/27fb69fa0e4a48d5bd0a306f1836f328.gif" alt="在这里插入图片描述" width="82" height="82"></a></p> <h1>五、httpd配置</h1> <h2>5.1 虚拟主机</h2> <p>httpd虚拟主机的作用是<font color="red">通过一个物理服务器来托管多个域名或网站</font>,实现资源共享、个性化配置和多域名指向不同网站的功能,提高服务器资源利用率和降低成本。</p> <h3>5.1.1 基于ip地址</h3> <h4>5.1.1.1 原理</h4> <p>每个虚拟主机分配一个唯一的IP地址,并通过服务器软件来指定每个虚拟主机使用的IP地址。</p> <h4>5.1.1.2 模拟实现</h4> <pre><code class="prism language-bash">systemctl stop firewalld setenforce <span class="token number">0</span> <span class="token function">rpm</span> <span class="token parameter variable">-q</span> httpd <span class="token comment">#没安装就装一下</span> systemctl start httpd <span class="token builtin class-name">cd</span> /var/www/html/ <span class="token comment">#进入httpd站点文件目录</span> <span class="token function">vim</span> index.html <span class="token comment">#设定默认主页,默认主页名字必须为index.html</span> systemctl restart httpd //重启httpd服务 </code></pre> <p><a href="http://img.e-com-net.com/image/info8/b58a34afc31a451a892c4d952e7ca2a7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b58a34afc31a451a892c4d952e7ca2a7.jpg" alt="web基础+HTTP协议+httpd详细配置_第6张图片" width="650" height="190" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token function">mkdir</span> ipv1 <span class="token comment">#创建虚拟机 所需目录</span> <span class="token function">vim</span> ipv1/index.html <span class="token comment">#测试页面主页</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/75d964d6a6914511b98446a297567f94.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/75d964d6a6914511b98446a297567f94.jpg" alt="web基础+HTTP协议+httpd详细配置_第7张图片" width="616" height="175" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token function">vim</span> /etc/httpd/conf.d/ipv.conf <span class="token comment">#新建配置文件 除了IP地址不同</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/d17c16134bd14048873d4737e89d6896.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d17c16134bd14048873d4737e89d6896.jpg" alt="web基础+HTTP协议+httpd详细配置_第8张图片" width="650" height="352" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash">httpd <span class="token parameter variable">-t</span> <span class="token comment">#语法检查</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/8f1301ba10184d3882aee53550def8ca.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/8f1301ba10184d3882aee53550def8ca.jpg" alt="在这里插入图片描述" width="650" height="99"></a></p> <pre><code class="prism language-bash"><span class="token comment">#有报错时</span> <span class="token function">vim</span> /etc/httpd/conf/httpd.conf ServerName www.example.com:80 <span class="token comment">#添加到主配置文件中</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/ec168e3ba6fe4ef4bbe21ad13e863228.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ec168e3ba6fe4ef4bbe21ad13e863228.jpg" alt="web基础+HTTP协议+httpd详细配置_第9张图片" width="650" height="416" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/ab5341da2ccc4657b57953759082c046.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ab5341da2ccc4657b57953759082c046.jpg" alt="web基础+HTTP协议+httpd详细配置_第10张图片" width="650" height="133" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token comment">#配置IP地址为192.168.2.103的虚拟机,以此为例</span> <span class="token function">vim</span> /etc/httpd/conf/httpd.conf <span class="token function">mkdir</span> /var/www/html/ipv1 <span class="token comment">#创建所需目录</span> httpd <span class="token parameter variable">-t</span> <span class="token function">vim</span> /var/www/html/ipv1/index.html <span class="token comment">#编辑主页</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/fd27a5fbc2ff4f4c9f61931d9b4f28d4.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fd27a5fbc2ff4f4c9f61931d9b4f28d4.jpg" alt="web基础+HTTP协议+httpd详细配置_第11张图片" width="650" height="172" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/d5de0c9589b24ab1a6c5562c6b6fe243.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d5de0c9589b24ab1a6c5562c6b6fe243.jpg" alt="web基础+HTTP协议+httpd详细配置_第12张图片" width="608" height="136" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash">在浏览器中输入 <span class="token number">192.168</span>.2.103:80 </code></pre> <p><a href="http://img.e-com-net.com/image/info8/b381d6bce79346e9a9f472e4e1266891.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b381d6bce79346e9a9f472e4e1266891.jpg" alt="web基础+HTTP协议+httpd详细配置_第13张图片" width="483" height="196" style="border:1px solid black;"></a></p> <h3>5.1.2 基于端口地址</h3> <h4>5.1.2.1 原理</h4> <p>每个虚拟主机使用同一个IP地址,但<font color="red">使用不同的端口号</font>来区分。</p> <h4>5.1.2.2 模拟实现</h4> <pre><code class="prism language-bash"><span class="token function">cp</span> ip.conf port.conf <span class="token function">vim</span> port.conf <span class="token comment">#修改配置文件 除了端口不同</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/c3cacdd42ea24773acf8613ce54bddb7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c3cacdd42ea24773acf8613ce54bddb7.jpg" alt="web基础+HTTP协议+httpd详细配置_第14张图片" width="650" height="226" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token comment">#修改192.168.2.103对应主机的httpd.conf</span> <span class="token function">vim</span> /etc/httpd/conf/httpd.conf </code></pre> <p><a href="http://img.e-com-net.com/image/info8/94adb502328144b995c82c93ed74fe4e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/94adb502328144b995c82c93ed74fe4e.jpg" alt="web基础+HTTP协议+httpd详细配置_第15张图片" width="650" height="144" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/b13b51bc78a64f0f95d5a1428f9229c7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b13b51bc78a64f0f95d5a1428f9229c7.jpg" alt="在这里插入图片描述" width="535" height="90"></a></p> <pre><code class="prism language-bash"><span class="token comment">#测试是否成功</span> <span class="token function">curl</span> <span class="token number">192.168</span>.2.103:8080 <span class="token function">curl</span> <span class="token number">192.168</span>.2.103:80 </code></pre> <p><a href="http://img.e-com-net.com/image/info8/b64c3854cb2e4c70b7bab5c5fb60f370.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b64c3854cb2e4c70b7bab5c5fb60f370.jpg" alt="web基础+HTTP协议+httpd详细配置_第16张图片" width="545" height="268" style="border:1px solid black;"></a></p> <h3>5.1.3 基于域名</h3> <h4>5.1.3.1 原理</h4> <p>服务器软件<font color="red">根据请求头中的主机名(域名)来区分</font>虚拟主机。</p> <p>这种方法不需要分配额外的IP地址或端口,可以在同一个IP地址上承载多个虚拟主机。</p> <h4>5.1.3.2 模拟实现</h4> <pre><code class="prism language-bash"><span class="token function">cp</span> ip.conf dns.conf <span class="token function">vim</span> dns.conf <span class="token comment">#修改配置文件 除了域名不同</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/a67e6a8905ac4b5cb5f1a05c101cdf63.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a67e6a8905ac4b5cb5f1a05c101cdf63.jpg" alt="web基础+HTTP协议+httpd详细配置_第17张图片" width="650" height="370" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token function">mkdir</span> ipv2 <span class="token comment">#创建所需目录</span> <span class="token function">vim</span> /var/www/html/ipv2/index.html <span class="token comment">#编辑主页</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/48a4b21b5e6a4b828c4b115e97627ced.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/48a4b21b5e6a4b828c4b115e97627ced.jpg" alt="在这里插入图片描述" width="378" height="69"></a><br> <a href="http://img.e-com-net.com/image/info8/375deaff195d49b4a45d64a95b62bbd9.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/375deaff195d49b4a45d64a95b62bbd9.jpg" alt="web基础+HTTP协议+httpd详细配置_第18张图片" width="490" height="116" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash">httpd <span class="token parameter variable">-t</span> <span class="token comment">#语法检查</span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/fd0c37df369742ad9fa871f4fba920b7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fd0c37df369742ad9fa871f4fba920b7.jpg" alt="在这里插入图片描述" width="384" height="68"></a></p> <pre><code class="prism language-bash"><span class="token comment">#编辑本地hosts文件,添加地址映射</span> <span class="token function">vim</span> /etc/hosts </code></pre> <p><a href="http://img.e-com-net.com/image/info8/571da59c41e44b7e915a68bd570f1d66.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/571da59c41e44b7e915a68bd570f1d66.jpg" alt="web基础+HTTP协议+httpd详细配置_第19张图片" width="571" height="184" style="border:1px solid black;"></a></p> <pre><code class="prism language-bash"><span class="token comment">#切换到目标地址为192.168.2.103的虚拟机</span> <span class="token comment">#具体操作不再演示</span> <span class="token builtin class-name">cd</span> /etc/www/html <span class="token function">mkdir</span> ipv1 <span class="token function">mkdir</span> ipv2 <span class="token function">vim</span> ./ipv1/index.html <span class="token function">vim</span> ./ipv2/index.html <span class="token builtin class-name">echo</span> <span class="token string">"<h1>www.ipv1.com</h1>"</span> /var/www/html/ipv1/index.html <span class="token builtin class-name">echo</span> <span class="token string">"<h1>www.ipv1.com</h1>"</span> /var/www/html/ipv1/index.html systemctl start httpd </code></pre> <pre><code class="prism language-bash">打开虚拟机的内置浏览器,输入www.ipv1.com 和 www.ipv2.com,观察结果 </code></pre> <p><a href="http://img.e-com-net.com/image/info8/f19538e2f1a148f2b4b2aa93ad434191.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f19538e2f1a148f2b4b2aa93ad434191.jpg" alt="web基础+HTTP协议+httpd详细配置_第20张图片" width="650" height="301" style="border:1px solid black;"></a></p> <h2>5. 2 三种工作模式</h2> <h3>5.2.1 Worker模式</h3> <p>工作线程(Worker)模式适用于资源利用率高的场景</p> <ul> <li>Apache在启动时会创建一组预定义数量的线程池。</li> <li>每个线程都可以处理多个请求,线程之间共享服务器的内存和资源。</li> <li>当一个请求到达服务器时,一个空闲的线程将被选择来处理该请求。</li> <li>线程可能会处理多个请求,通过线程池重用来更高效地处理请求。</li> <li>这种模式下需要注意线程安全的问题,以确保多个线程间的数据访问不会导致冲突。</li> </ul> <h3>5.2.2 Event模式</h3> <p>事件驱动(Event MPM)模式适用于高并发场景</p> <ul> <li>在事件驱动模式下,Apache使用I/O多路复用(如epoll或kqueue)来监听多个连接。</li> <li>当一个连接有数据到达时,Apache将发出事件通知,表示该连接有可读数据。</li> <li>Apache将事件分发给一个空闲的工作线程来处理请求。</li> <li>工作线程处理请求的过程通常是非阻塞的,通过事件驱动方式读取数据和发送响应。</li> <li>这种模式下可以处理大量的并发请求,因为它不需要为每个请求创建一个新的进程或线程。</li> </ul> <h3>5.2.3 Pre-Fork模式</h3> <p>预产生(Pre-Fork)模式适用于稳定性要求高的场景</p> <ul> <li>Apache在启动时会创建一组预定义数量的子进程(称为工作进程)。</li> <li>每个工作进程都是独立的,有自己的内存空间和资源。</li> <li>当一个请求到达服务器时,主进程选择一个空闲的工作进程来接受该请求。</li> <li>选中的工作进程处理该请求,生成响应并将其发送回客户端。</li> <li>这种模式下每个工作进程只能处理一个请求,处理完请求后会继续等待下一个请求。</li> </ul> <p><a href="http://img.e-com-net.com/image/info8/27fb69fa0e4a48d5bd0a306f1836f328.gif" target="_blank"><img src="http://img.e-com-net.com/image/info8/27fb69fa0e4a48d5bd0a306f1836f328.gif" alt="在这里插入图片描述" width="82" height="82"></a></p> <h1>六、Cookie和Session</h1> <p>Cookie和Session用于<font color="red">解决http协议无状态</font>。</p> <h2>6.1 Cookie</h2> <p>Cookie是服务器在用户的浏览器中存储的小型文本文件。当用户访问一个网站时,服务器可以通过HTTP响应的Set-Cookie标头将一个或多个Cookie发送给浏览器。浏览器会将这些Cookie存储在用户的计算机上,并在以后的请求中将它们发送回服务器。</p> <p>每个Cookie都包括一个名称、一个值和一些可选的属性,如过期时间、域名、路径等。服务器可以使用Cookie来存储用户的偏好设置、会话标识符、购物车数据等。浏览器会在每次请求中自动发送与特定域名相关联的Cookie,使得服务器能够识别用户。</p> <h2>6.2 Session</h2> <p>Session是在服务器端存储用户状态的一种机制。当用户首次访问一个网站时,服务器会为该用户创建一个唯一的会话标识符(Session ID)。这个标识符通常被存储在Cookie中,但也可以通过其他方式(如URL参数)进行传递。</p> <p>服务器使用Session来存储用户信息和其他相关数据。在每个请求中,浏览器会将Session ID作为Cookie发送给服务器,使得服务器能够识别并恢复与该用户相关联的会话数据。Session数据通常存储在服务器的内存或持久化存储中。</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1694121618638450688"></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,网络协议,网络,运维,linux,笔记)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835513699826233344.htm" title="android系统selinux中添加新属性property" target="_blank">android系统selinux中添加新属性property</a> <span class="text-muted">辉色投像</span> <div>1.定位/android/system/sepolicy/private/property_contexts声明属性开头:persist.charge声明属性类型:u:object_r:system_prop:s0图12.定位到android/system/sepolicy/public/domain.te删除neverallow{domain-init}default_prop:property</div> </li> <li><a href="/article/1835512809883004928.htm" title="10月|愿你的青春不负梦想-读书笔记-01" target="_blank">10月|愿你的青春不负梦想-读书笔记-01</a> <span class="text-muted">Tracy的小书斋</span> <div>本书的作者是俞敏洪,大家都很熟悉他了吧。俞敏洪老师是我行业的领头羊吧,也是我事业上的偶像。本日摘录他书中第一章中的金句:『一个人如果什么目标都没有,就会浑浑噩噩,感觉生命中缺少能量。能给我们能量的,是对未来的期待。第一件事,我始终为了进步而努力。与其追寻全世界的骏马,不如种植丰美的草原,到时骏马自然会来。第二件事,我始终有阶段性的目标。什么东西能给我能量?答案是对未来的期待。』读到这里的时候,我便</div> </li> <li><a href="/article/1835511912843014144.htm" title="理解Gunicorn:Python WSGI服务器的基石" target="_blank">理解Gunicorn:Python WSGI服务器的基石</a> <span class="text-muted">范范0825</span> <a class="tag" taget="_blank" href="/search/ipython/1.htm">ipython</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>理解Gunicorn:PythonWSGI服务器的基石介绍Gunicorn,全称GreenUnicorn,是一个为PythonWSGI(WebServerGatewayInterface)应用设计的高效、轻量级HTTP服务器。作为PythonWeb应用部署的常用工具,Gunicorn以其高性能和易用性著称。本文将介绍Gunicorn的基本概念、安装和配置,帮助初学者快速上手。1.什么是Gunico</div> </li> <li><a href="/article/1835510025561403392.htm" title="《投行人生》读书笔记" target="_blank">《投行人生》读书笔记</a> <span class="text-muted">小蘑菇的树洞</span> <div>《投行人生》----作者詹姆斯-A-朗德摩根斯坦利副主席40年的职业洞见-很短小精悍的篇幅,比较适合初入职场的新人。第一部分成功的职业生涯需要规划1.情商归为适应能力分享与协作同理心适应能力,更多的是自我意识,你有能力识别自己的情并分辨这些情绪如何影响你的思想和行为。2.对于初入职场的人的建议,细节,截止日期和数据很重要截止日期,一种有效的方法是请老板为你所有的任务进行优先级排序。和老板喝咖啡的好</div> </li> <li><a href="/article/1835509770287673344.htm" title="swagger访问路径" target="_blank">swagger访问路径</a> <span class="text-muted">igotyback</span> <a class="tag" taget="_blank" href="/search/swagger/1.htm">swagger</a> <div>Swagger2.x版本访问地址:http://{ip}:{port}/{context-path}/swagger-ui.html{ip}是你的服务器IP地址。{port}是你的应用服务端口,通常为8080。{context-path}是你的应用上下文路径,如果应用部署在根路径下,则为空。Swagger3.x版本对于Swagger3.x版本(也称为OpenAPI3)访问地址:http://{ip</div> </li> <li><a href="/article/1835509391361667072.htm" title="Linux下QT开发的动态库界面弹出操作(SDL2)" target="_blank">Linux下QT开发的动态库界面弹出操作(SDL2)</a> <span class="text-muted">13jjyao</span> <a class="tag" taget="_blank" href="/search/QT%E7%B1%BB/1.htm">QT类</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/sdl2/1.htm">sdl2</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>需求:操作系统为linux,开发框架为qt,做成需带界面的qt动态库,调用方为java等非qt程序难点:调用方为java等非qt程序,也就是说调用方肯定不带QApplication::exec(),缺少了这个,QTimer等事件和QT创建的窗口将不能弹出(包括opencv也是不能弹出);这与qt调用本身qt库是有本质的区别的思路:1.调用方缺QApplication::exec(),那么我们在接口</div> </li> <li><a href="/article/1835507248395284480.htm" title="【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数" target="_blank">【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数</a> <span class="text-muted">广龙宇</span> <a class="tag" taget="_blank" href="/search/%E4%B8%80%E8%B5%B7%E5%AD%A6Rust/1.htm">一起学Rust</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Rust%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">Rust设计模式</a><a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/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>提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、使用借用类型作为参数二、格式化拼接字符串三、使用构造函数总结前言Rust不是传统的面向对象编程语言,它的所有特性,使其独一无二。因此,学习特定于Rust的设计模式是必要的。本系列文章为作者学习《Rust设计模式》的学习笔记以及自己的见解。因此,本系列文章的结构也与此书的结构相同(后续可能会调成结构),基本上分为三个部分</div> </li> <li><a href="/article/1835505858444881920.htm" title="git常用命令笔记" target="_blank">git常用命令笔记</a> <span class="text-muted">咩酱-小羊</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>###用习惯了idea总是不记得git的一些常见命令,需要用到的时候总是担心旁边站了人~~~记个笔记@_@,告诉自己看笔记不丢人初始化初始化一个新的Git仓库gitinit配置配置用户信息gitconfig--globaluser.name"YourName"gitconfig--globaluser.email"youremail@example.com"基本操作克隆远程仓库gitclone查看</div> </li> <li><a href="/article/1835504596898902016.htm" title="linux sdl windows.h,Windows下的SDL安装" target="_blank">linux sdl windows.h,Windows下的SDL安装</a> <span class="text-muted">奔跑吧linux内核</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/sdl/1.htm">sdl</a><a class="tag" taget="_blank" href="/search/windows.h/1.htm">windows.h</a> <div>首先你要下载并安装SDL开发包。如果装在C盘下,路径为C:\SDL1.2.5如果在WINDOWS下。你可以按以下步骤:1.打开VC++,点击"Tools",Options2,点击directories选项3.选择"Includefiles"增加一个新的路径。"C:\SDL1.2.5\include"4,现在选择"Libaryfiles“增加"C:\SDL1.2.5\lib"现在你可以开始编写你的第</div> </li> <li><a href="/article/1835504218178416640.htm" title="Google earth studio 简介" target="_blank">Google earth studio 简介</a> <span class="text-muted">陟彼高冈yu</span> <a class="tag" taget="_blank" href="/search/%E6%97%85%E6%B8%B8/1.htm">旅游</a> <div>GoogleEarthStudio是一个基于Web的动画工具,专为创作使用GoogleEarth数据的动画和视频而设计。它利用了GoogleEarth强大的三维地图和卫星影像数据库,使用户能够轻松地创建逼真的地球动画、航拍视频和动态地图可视化。网址为https://www.google.com/earth/studio/。GoogleEarthStudio是一个基于Web的动画工具,专为创作使用G</div> </li> <li><a href="/article/1835503712899002368.htm" title="linux中sdl的使用教程,sdl使用入门" target="_blank">linux中sdl的使用教程,sdl使用入门</a> <span class="text-muted">Melissa Corvinus</span> <a class="tag" taget="_blank" href="/search/linux%E4%B8%ADsdl%E7%9A%84%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/1.htm">linux中sdl的使用教程</a> <div>本文通过一个简单示例讲解SDL的基本使用流程。示例中展示一个窗口,窗口里面有个随机颜色快随机移动。当我们鼠标点击关闭按钮时间窗口关闭。基本步骤如下:1.初始化SDL并创建一个窗口。SDL_Init()初始化SDL_CreateWindow()创建窗口2.纹理渲染存储RGB和存储纹理的区别:比如一个从左到右由红色渐变到蓝色的矩形,用存储RGB的话就需要把矩形中每个点的具体颜色值存储下来;而纹理只是一</div> </li> <li><a href="/article/1835502578050363392.htm" title="PHP环境搭建详细教程" target="_blank">PHP环境搭建详细教程</a> <span class="text-muted">好看资源平台</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>PHP是一个流行的服务器端脚本语言,广泛用于Web开发。为了使PHP能够在本地或服务器上运行,我们需要搭建一个合适的PHP环境。本教程将结合最新资料,介绍在不同操作系统上搭建PHP开发环境的多种方法,包括Windows、macOS和Linux系统的安装步骤,以及本地和Docker环境的配置。1.PHP环境搭建概述PHP环境的搭建主要分为以下几类:集成开发环境:例如XAMPP、WAMP、MAMP,这</div> </li> <li><a href="/article/1835502451877310464.htm" title="基于社交网络算法优化的二维最大熵图像分割" target="_blank">基于社交网络算法优化的二维最大熵图像分割</a> <span class="text-muted">智能算法研学社(Jack旭)</span> <a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95%E5%BA%94%E7%94%A8/1.htm">智能优化算法应用</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F%E5%88%86%E5%89%B2/1.htm">图像分割</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>智能优化算法应用:基于社交网络优化的二维最大熵图像阈值分割-附代码文章目录智能优化算法应用:基于社交网络优化的二维最大熵图像阈值分割-附代码1.前言2.二维最大熵阈值分割原理3.基于社交网络优化的多阈值分割4.算法结果:5.参考文献:6.Matlab代码摘要:本文介绍基于最大熵的图像分割,并且应用社交网络算法进行阈值寻优。1.前言阅读此文章前,请阅读《图像分割:直方图区域划分及信息统计介绍》htt</div> </li> <li><a href="/article/1835502282603589632.htm" title="509. 斐波那契数(每日一题)" target="_blank">509. 斐波那契数(每日一题)</a> <span class="text-muted">lzyprime</span> <div>lzyprime博客(github)创建时间:2021.01.04qq及邮箱:2383518170leetcode笔记题目描述斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2),其中n>1给你n,请计算F(n)。示例1:输入:2输出:1解释:F(2)=F(1)+</div> </li> <li><a href="/article/1835501948011376640.htm" title="使用 FinalShell 进行远程连接(ssh 远程连接 Linux 服务器)" target="_blank">使用 FinalShell 进行远程连接(ssh 远程连接 Linux 服务器)</a> <span class="text-muted">编程经验分享</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/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/ssh/1.htm">ssh</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>目录前言基本使用教程新建远程连接连接主机自定义命令路由追踪前言后端开发,必然需要和服务器打交道,部署应用,排查问题,查看运行日志等等。一般服务器都是集中部署在机房中,也有一些直接是云服务器,总而言之,程序员不可能直接和服务器直接操作,一般都是通过ssh连接来登录服务器。刚接触远程连接时,使用的是XSHELL来远程连接服务器,连接上就能够操作远程服务器了,但是仅用XSHELL并没有上传下载文件的功能</div> </li> <li><a href="/article/1835500750684385280.htm" title="拥有断舍离的心态,过精简生活--《断舍离》读书笔记" target="_blank">拥有断舍离的心态,过精简生活--《断舍离》读书笔记</a> <span class="text-muted">爱吃丸子的小樱桃</span> <div>不知不觉间房间里的东西越来越多,虽然摆放整齐,但也时常会觉得空间逼仄,令人心生烦闷。抱着断舍离的态度,我开始阅读《断舍离》这本书,希望从书中能找到一些有效的方法,帮助我实现空间、物品上的断舍离。《断舍离》是日本作家山下英子通过自己的经历、思考和实践总结而成的,整体内涵也从刚开始的私人生活哲学的“断舍离”升华成了“人生实践哲学”,接着又成为每个人都能实行的“改变人生的断舍离”,从“哲学”逐渐升华成“</div> </li> <li><a href="/article/1835499615491813376.htm" title="四章-32-点要素的聚合" target="_blank">四章-32-点要素的聚合</a> <span class="text-muted">彩云飘过</span> <div>本文基于腾讯课堂老胡的课《跟我学Openlayers--基础实例详解》做的学习笔记,使用的openlayers5.3.xapi。源码见1032.html,对应的官网示例https://openlayers.org/en/latest/examples/cluster.htmlhttps://openlayers.org/en/latest/examples/earthquake-clusters.</div> </li> <li><a href="/article/1835499052125483008.htm" title="Git常用命令-修改远程仓库地址" target="_blank">Git常用命令-修改远程仓库地址</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/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>查看远程仓库地址gitremote-v返回结果originhttps://git.coding.net/*****.git(fetch)originhttps://git.coding.net/*****.git(push)修改远程仓库地址gitremoteset-urloriginhttps://git.coding.net/*****.git先删除后增加远程仓库地址gitremotermori</div> </li> <li><a href="/article/1835498349264990208.htm" title="2023-04-17|篮球女孩" target="_blank">2023-04-17|篮球女孩</a> <span class="text-muted">长一木</span> <div>1小学抑或初中阶段,在课外书了解到她的故事。“篮球女孩”。当时佩服她的顽强,也对生命多了一丝敬畏。今天刚好在公众号看到,长大后的“篮球女孩”。佩服之余又满是心疼。网络侵删祝那素未蒙面的女孩,未来一切顺遂。</div> </li> <li><a href="/article/1835498219489030144.htm" title="高端密码学院笔记285" target="_blank">高端密码学院笔记285</a> <span class="text-muted">柚子_b4b4</span> <div>高端幸福密码学院(高级班)幸福使者:李华第(598)期《幸福》之回归内在深层生命原动力基础篇——揭秘“激励”成长的喜悦心理案例分析主讲:刘莉一,知识扩充:成功=艰苦劳动+正确方法+少说空话。贪图省力的船夫,目标永远下游。智者的梦再美,也不如愚人实干的脚印。幸福早课堂2020.10.16星期五一笔记:1,重视和珍惜的前提是知道它的价值非常重要,当你珍惜了,你就真正定下来,真正的学到身上。2,大家需要</div> </li> <li><a href="/article/1835497537369370624.htm" title="利用Requests Toolkit轻松完成HTTP请求" target="_blank">利用Requests Toolkit轻松完成HTTP请求</a> <span class="text-muted">nseejrukjhad</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</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/python/1.htm">python</a> <div>RequestsToolkit的力量:轻松构建HTTP请求Agent在现代软件开发中,API请求是与外部服务交互的核心。RequestsToolkit提供了一种便捷的方式,帮助开发者构建自动化的HTTP请求Agent。本文旨在详细介绍RequestsToolkit的设置、使用和潜在挑战。引言RequestsToolkit是一个强大的工具包,可用于构建执行HTTP请求的智能代理。这对于想要自动化与外</div> </li> <li><a href="/article/1835496780066811904.htm" title="在一台Ubuntu计算机上构建Hyperledger Fabric网络" target="_blank">在一台Ubuntu计算机上构建Hyperledger Fabric网络</a> <span class="text-muted">落叶无声9</span> <a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E8%B6%85%E7%BA%A7%E8%B4%A6%E6%9C%AC/1.htm">超级账本</a><a class="tag" taget="_blank" href="/search/Hyperledger/1.htm">Hyperledger</a><a class="tag" taget="_blank" href="/search/fabric/1.htm">fabric</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/%E6%9E%84%E5%BB%BA/1.htm">构建</a><a class="tag" taget="_blank" href="/search/hyperledger/1.htm">hyperledger</a><a class="tag" taget="_blank" href="/search/fabric/1.htm">fabric</a> <div>在一台Ubuntu计算机上构建HyperledgerFabric网络Hyperledgerfabric是一个开源的区块链应用程序平台,为开发基于区块链的应用程序提供了一个起点。当我们提到HyperledgerFabric网络时,我们指的是使用HyperledgerFabric的正在运行的系统。即使只使用最少数量的组件,部署Fabric网络也不是一件容易的事。Fabric社区创建了一个名为Cello</div> </li> <li><a href="/article/1835496402042580992.htm" title="GitHub上克隆项目" target="_blank">GitHub上克隆项目</a> <span class="text-muted">bigbig猩猩</span> <a class="tag" taget="_blank" href="/search/github/1.htm">github</a> <div>从GitHub上克隆项目是一个简单且直接的过程,它允许你将远程仓库中的项目复制到你的本地计算机上,以便进行进一步的开发、测试或学习。以下是一个详细的步骤指南,帮助你从GitHub上克隆项目。一、准备工作1.安装Git在克隆GitHub项目之前,你需要在你的计算机上安装Git工具。Git是一个开源的分布式版本控制系统,用于跟踪和管理代码变更。你可以从Git的官方网站(https://git-scm.</div> </li> <li><a href="/article/1835495770502033408.htm" title="Day17笔记-高阶函数" target="_blank">Day17笔记-高阶函数</a> <span class="text-muted">~在杰难逃~</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/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><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>高阶函数【重点掌握】函数的本质:函数是一个变量,函数名是一个变量名,一个函数可以作为另一个函数的参数或返回值使用如果A函数作为B函数的参数,B函数调用完成之后,会得到一个结果,则B函数被称为高阶函数常用的高阶函数:map(),reduce(),filter(),sorted()1.map()map(func,iterable),返回值是一个iterator【容器,迭代器】func:函数iterab</div> </li> <li><a href="/article/1835495644123459584.htm" title="Day1笔记-Python简介&标识符和关键字&输入输出" target="_blank">Day1笔记-Python简介&标识符和关键字&输入输出</a> <span class="text-muted">~在杰难逃~</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/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/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a> <div>大家好,从今天开始呢,杰哥开展一个新的专栏,当然,数据分析部分也会不定时更新的,这个新的专栏主要是讲解一些Python的基础语法和知识,帮助0基础的小伙伴入门和学习Python,感兴趣的小伙伴可以开始认真学习啦!一、Python简介【了解】1.计算机工作原理编程语言就是用来定义计算机程序的形式语言。我们通过编程语言来编写程序代码,再通过语言处理程序执行向计算机发送指令,让计算机完成对应的工作,编程</div> </li> <li><a href="/article/1835493373906087936.htm" title="libyuv之linux编译" target="_blank">libyuv之linux编译</a> <span class="text-muted">jaronho</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>文章目录一、下载源码二、编译源码三、注意事项1、银河麒麟系统(aarch64)(1)解决armv8-a+dotprod+i8mm指令集支持问题(2)解决armv9-a+sve2指令集支持问题一、下载源码到GitHub网站下载https://github.com/lemenkov/libyuv源码,或者用直接用git克隆到本地,如:gitclonehttps://github.com/lemenko</div> </li> <li><a href="/article/1835493247179386880.htm" title="Faiss Tips:高效向量搜索与聚类的利器" target="_blank">Faiss Tips:高效向量搜索与聚类的利器</a> <span class="text-muted">焦习娜Samantha</span> <div>FaissTips:高效向量搜索与聚类的利器faiss_tipsSomeusefultipsforfaiss项目地址:https://gitcode.com/gh_mirrors/fa/faiss_tips项目介绍Faiss是由FacebookAIResearch开发的一个用于高效相似性搜索和密集向量聚类的库。它支持多种硬件平台,包括CPU和GPU,能够在海量数据集上实现快速的近似最近邻搜索(AN</div> </li> <li><a href="/article/1835492740536823808.htm" title="node.js学习" target="_blank">node.js学习</a> <span class="text-muted">小猿L</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a> <div>node.js学习实操及笔记温故node.js,node.js学习实操过程及笔记~node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记为什么学node.js可以让别人访问我们编写的网页为后续的框架学习打下基础,三大框架vuereactangular离不开node.jsnode.js是什么官网:node.js是一个开源的、跨平台的运行JavaScript的运行</div> </li> <li><a href="/article/1835491859351302144.htm" title="Python 实现图片裁剪(附代码) | Python工具" target="_blank">Python 实现图片裁剪(附代码) | Python工具</a> <span class="text-muted">剑客阿良_ALiang</span> <div>前言本文提供将图片按照自定义尺寸进行裁剪的工具方法,一如既往的实用主义。环境依赖ffmpeg环境安装,可以参考我的另一篇文章:windowsffmpeg安装部署_阿良的博客-CSDN博客本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中。ffmpy安装:pipinstallffmpy-ihttps://pypi.douban.com/simple代码不废话了,上代码</div> </li> <li><a href="/article/1835491354004779008.htm" title="【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)" target="_blank">【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)</a> <span class="text-muted">算法大师</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%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/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.黑盒测试和白盒测试的区别2.假设我们公司现在开发一个类似于微信的软件1.0版本,现在要你测试这个功能:打开聊天窗口,输入文本,限制字数在200字以内。问你怎么提取测试点。功能测试性能测试安全性测试可用性测试跨平台兼容性测试网络环境测试3.接口测试的工具你了解哪些</div> </li> <li><a href="/article/25.htm" title="Java实现的简单双向Map,支持重复Value" target="_blank">Java实现的简单双向Map,支持重复Value</a> <span class="text-muted">superlxw1234</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8F%8C%E5%90%91map/1.htm">双向map</a> <div>关键字:Java双向Map、DualHashBidiMap     有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。   数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。   即:既要根据Key找Value,又要根据Value</div> </li> <li><a href="/article/152.htm" title="PL/SQL触发器基础及例子" target="_blank">PL/SQL触发器基础及例子</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><a class="tag" taget="_blank" href="/search/%E8%A7%A6%E5%8F%91%E5%99%A8/1.htm">触发器</a><a class="tag" taget="_blank" href="/search/PL%2FSQL%E7%BC%96%E7%A8%8B/1.htm">PL/SQL编程</a> <div>  触发器的简介; 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,   一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行, 触发时间:指明触发器何时执行,该值可取: before:表示在数据库动作之前触发</div> </li> <li><a href="/article/279.htm" title="[时空与探索]穿越时空的一些问题" target="_blank">[时空与探索]穿越时空的一些问题</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E9%97%AE%E9%A2%98/1.htm">问题</a> <div>       我们还没有进行过任何数学形式上的证明,仅仅是一个猜想.....       这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理</div> </li> <li><a href="/article/406.htm" title="easy ui datagrid上移下移一行" target="_blank">easy ui datagrid上移下移一行</a> <span class="text-muted">商人shang</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E7%A7%BB%E4%B8%8B%E7%A7%BB/1.htm">上移下移</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/datagrid/1.htm">datagrid</a> <div>/** * 向上移动一行 * * @param dg * @param row */ function moveupRow(dg, row) { var datagrid = $(dg); var index = datagrid.datagrid("getRowIndex", row); if (isFirstRow(dg, row)) {</div> </li> <li><a href="/article/533.htm" title="Java反射" target="_blank">Java反射</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%B0%84/1.htm">反射</a> <div>本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教 首先看看java中的Class package demo; public class ClassTest { /*先了解java中的Class*/ public static void main(String[] args) { //任何一个类都</div> </li> <li><a href="/article/660.htm" title="springMVC 使用JSR-303 Validation验证" target="_blank">springMVC 使用JSR-303 Validation验证</a> <span class="text-muted">杨白白</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a> <div>JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。 JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。 登录需要验证类 public class Login { @NotEmpty</div> </li> <li><a href="/article/787.htm" title="log4j" target="_blank">log4j</a> <span class="text-muted">香水浓</span> <a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a> <div> log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE #log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML #console log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender log4</div> </li> <li><a href="/article/914.htm" title="使用ajax和history.pushState无刷新改变页面URL" target="_blank">使用ajax和history.pushState无刷新改变页面URL</a> <span class="text-muted">agevs</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a> <div>表现 如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。 是什么有这么强大的功能呢? HTML5里引用了新的API,history.pushState和history.replaceState,就是通过</div> </li> <li><a href="/article/1041.htm" title="centos中文乱码" target="_blank">centos中文乱码</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a> <div>一、CentOS系统访问 g.cn ,发现中文乱码。 于是用以前的方式:yum -y install fonts-chinese CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。       后来,终于找到以下方法可以解决,需要两个中文支持的包: fonts-chinese-3.02-12.</div> </li> <li><a href="/article/1168.htm" title="触发器" target="_blank">触发器</a> <span class="text-muted">baalwolf</span> <a class="tag" taget="_blank" href="/search/%E8%A7%A6%E5%8F%91%E5%99%A8/1.htm">触发器</a> <div>触发器(trigger):监视某种情况,并触发某种操作。 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 语法: create trigger triggerName after/before </div> </li> <li><a href="/article/1295.htm" title="JS正则表达式的i m g" target="_blank">JS正则表达式的i m g</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/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>        g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。         i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。         m:表示</div> </li> <li><a href="/article/1422.htm" title="HTML5模式和Hashbang模式" target="_blank">HTML5模式和Hashbang模式</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/Hashbang%E6%A8%A1%E5%BC%8F/1.htm">Hashbang模式</a><a class="tag" taget="_blank" href="/search/HTML5%E6%A8%A1%E5%BC%8F/1.htm">HTML5模式</a> <div>        我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。 html5Mode         一个布尔值,标识$location服务是否运行在HTML5模式下。 ha</div> </li> <li><a href="/article/1549.htm" title="[Maven学习笔记六]Maven生命周期" target="_blank">[Maven学习笔记六]Maven生命周期</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>从mvn test的输出开始说起   当我们在user-core中执行mvn test时,执行的输出如下:   /software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs</div> </li> <li><a href="/article/1676.htm" title="【Hadoop七】基于Yarn的Hadoop Map Reduce容错" target="_blank">【Hadoop七】基于Yarn的Hadoop Map Reduce容错</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>运行于Yarn的Map Reduce作业,可能发生失败的点包括 Task Failure Application Master Failure Node Manager Failure Resource Manager Failure 1. Task Failure 任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A</div> </li> <li><a href="/article/1803.htm" title="记一次数据推送的异常解决端口解决" target="_blank">记一次数据推送的异常解决端口解决</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%95%B0%E6%8D%AE%E6%8E%A8%E9%80%81%E7%9A%84%E5%BC%82%E5%B8%B8%E8%A7%A3%E5%86%B3/1.htm">记一次数据推送的异常解决</a> <div>   需求:从db获取数据然后推送到B         程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。     自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。    service iptables stop </div> </li> <li><a href="/article/1930.htm" title="巧用视错觉-UI更有趣" target="_blank">巧用视错觉-UI更有趣</a> <span class="text-muted">brotherlamp</span> <a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/ui%E8%A7%86%E9%A2%91/1.htm">ui视频</a><a class="tag" taget="_blank" href="/search/ui%E6%95%99%E7%A8%8B/1.htm">ui教程</a><a class="tag" taget="_blank" href="/search/ui%E8%87%AA%E5%AD%A6/1.htm">ui自学</a><a class="tag" taget="_blank" href="/search/ui%E8%B5%84%E6%96%99/1.htm">ui资料</a> <div>我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。 视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。 格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。 在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,</div> </li> <li><a href="/article/2057.htm" title="线段树-poj1177-N个矩形求边长(离散化+扫描线)" target="_blank">线段树-poj1177-N个矩形求边长(离散化+扫描线)</a> <span class="text-muted">bylijinnan</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%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%AE%B5%E6%A0%91/1.htm">线段树</a> <div>package com.ljn.base; import java.util.Arrays; import java.util.Comparator; import java.util.Set; import java.util.TreeSet; /** * POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177 </div> </li> <li><a href="/article/2184.htm" title="HTTP协议详解" target="_blank">HTTP协议详解</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/http%E5%8D%8F%E8%AE%AE/1.htm">http协议</a> <div>引言                                 </div> </li> <li><a href="/article/2311.htm" title="Scala设计模式" target="_blank">Scala设计模式</a> <span class="text-muted">chenchao051</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>Scala设计模式                我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译</div> </li> <li><a href="/article/2438.htm" title="安装mysql" target="_blank">安装mysql</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a> <div>安装mysql   (1)删除linux上已经安装的mysql相关库信息。rpm  -e  xxxxxxx   --nodeps (强制删除)      执行命令rpm -qa |grep mysql 检查是否删除干净   (2)执行命令  rpm -i MySQL-server-5.5.31-2.el</div> </li> <li><a href="/article/2565.htm" title="HTTP状态码大全" target="_blank">HTTP状态码大全</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/http%E7%8A%B6%E6%80%81%E7%A0%81/1.htm">http状态码</a> <div>完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request</div> </li> <li><a href="/article/2692.htm" title="asihttprequest上传图片" target="_blank">asihttprequest上传图片</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ASIHTTPRequest/1.htm">ASIHTTPRequest</a> <div>NSURL *url =@"yourURL"; ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url]; [currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se</div> </li> <li><a href="/article/2819.htm" title="C语言中,关键字static的作用" target="_blank">C语言中,关键字static的作用</a> <span class="text-muted">e200702084</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a> <div>在C语言中,关键字static有三个明显的作用: 1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。 一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访</div> </li> <li><a href="/article/2946.htm" title="win7/8使用curl" target="_blank">win7/8使用curl</a> <span class="text-muted">geeksun</span> <a class="tag" taget="_blank" href="/search/win7/1.htm">win7</a> <div>1.  WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。 下载地址:  http://curl.haxx.se/download.html 请选择不带SSL的版本,否则还需要安装SSL的支持包   2.  可以给Windows增加c</div> </li> <li><a href="/article/3073.htm" title="Creating a Shared Repository; Users Sharing The Repository" target="_blank">Creating a Shared Repository; Users Sharing The Repository</a> <span class="text-muted">hongtoushizi</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a> <div>转载自:   http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ Commands discussed in this section: git init –bare git clone git remote git pull git p</div> </li> <li><a href="/article/3200.htm" title="Java实现字符串反转的8种或9种方法" target="_blank">Java实现字符串反转的8种或9种方法</a> <span class="text-muted">Josh_Persistence</span> <a class="tag" taget="_blank" href="/search/%E5%BC%82%E6%88%96%E5%8F%8D%E8%BD%AC/1.htm">异或反转</a><a class="tag" taget="_blank" href="/search/%E9%80%92%E5%BD%92%E5%8F%8D%E8%BD%AC/1.htm">递归反转</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%88%86%E4%BA%A4%E6%8D%A2%E5%8F%8D%E8%BD%AC/1.htm">二分交换反转</a><a class="tag" taget="_blank" href="/search/java%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8F%8D%E8%BD%AC/1.htm">java字符串反转</a><a class="tag" taget="_blank" href="/search/%E6%A0%88%E5%8F%8D%E8%BD%AC/1.htm">栈反转</a> <div>注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客: http://josh-persistence.iteye.com/blog/2205768   /** * */ package com.wsheng.aggregator.algorithm.string; import java.util.Stack; /** </div> </li> <li><a href="/article/3327.htm" title="代码实现任意容量倒水问题" target="_blank">代码实现任意容量倒水问题</a> <span class="text-muted">home198979</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%80%92%E6%B0%B4/1.htm">倒水</a> <div>形象化设计模式实战             HELLO!架构                     redis命令源码解析   倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C</div> </li> <li><a href="/article/3454.htm" title="Druid datasource" target="_blank">Druid datasource</a> <span class="text-muted">zhb8015</span> <a class="tag" taget="_blank" href="/search/druid/1.htm">druid</a> <div>推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http</div> </li> <li><a href="/article/3581.htm" title="两种启动监听器ApplicationListener和ServletContextListener" target="_blank">两种启动监听器ApplicationListener和ServletContextListener</a> <span class="text-muted">spjich</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/%E6%A1%86%E6%9E%B6/1.htm">框架</a> <div>引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器   ServletContextListener  特点: 依赖于sevlet容器,需要配置web.xml 使用方法: public class StartListener implements </div> </li> <li><a href="/article/3708.htm" title="JavaScript Rounding Methods of the Math object" target="_blank">JavaScript Rounding Methods of the Math object</a> <span class="text-muted">何不笑</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a> <div>    The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(),  Math.floor(), and  Math.round() — handle rounding in differen</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>