目目录录
- 一、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 的区别
- 二、静态资源和动态资源
-
- 三、HTTP协议
-
- 3.1 HTTP协议简介
- 3.2 HTTP协议版本
- 3.2 HTTP方法
- 3.3 HTTP请求访问的完整过程
- 3.4 HTTP状态码
- 3.5 HTTP的请求报文和响应报文
-
- 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.2 基于端口地址
-
- 5.1.3 基于域名
-
- 5. 2 三种工作模式
-
- 5.2.1 Worker模式
- 5.2.2 Event模式
- 5.2.3 Pre-Fork模式
- 六、Cookie和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/1899597967392829440.htm"
title="十大软件供应链安全AI代表厂商,一文快速了解!" target="_blank">十大软件供应链安全AI代表厂商,一文快速了解!</a>
<span class="text-muted">数字供应链安全产品选型</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
<div>中国网络安全行业专业媒体安全牛正式发布《软件供应链安全能力构建指南(2024版)》报告,悬镜安全(官网访问地址:悬镜安全-DevSecOps数字供应链安全开拓者)作为DevSecOps软件供应链安全领域领导者,牵头并主导参与了多项国家软件供应链安全行业标准的制定,并打造了全球首个数字供应链开源社区OpenSCA,发布国内首个软件物料清单(SBOM)格式“数字供应链数据交换格式-DSDX(Digit</div>
</li>
<li><a href="/article/1899597840955535360.htm"
title="Android 网络框架之okhttp源码解析" target="_blank">Android 网络框架之okhttp源码解析</a>
<span class="text-muted">码中之牛</span>
<a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/Android/1.htm">Android</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6/1.htm">开源框架</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/kotlin/1.htm">kotlin</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/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%A1%86%E6%9E%B6/1.htm">网络框架</a>
<div>okhttp使用okhttp则分为Request请求与response响应。request请求体:每一个HTTP请求中都应该包含一个URL,一个GET或POST方法以及Header或其他参数,当然还可以含特定内容类型的数据流。response响应码:响应则包含一个回复代码(200代表成功,404代表未找到),Header和定制可选的body。封装的okhttp库与okhttp使用:blog.csd</div>
</li>
<li><a href="/article/1899597587716042752.htm"
title="GitLab配置ssh key" target="_blank">GitLab配置ssh key</a>
<span class="text-muted">西北**孤狼</span>
<a class="tag" taget="_blank" href="/search/SHH/1.htm">SHH</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
<div>简介:一、背景当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成sshkey,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成sshkey,然后配置在gitl</div>
</li>
<li><a href="/article/1899597335080529920.htm"
title="AI系统架构" target="_blank">AI系统架构</a>
<span class="text-muted">flying robot</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a>
<div>在AI系统架构中,通常可以分为基础设施层、模型层和应用层。它们分别对应不同的技术和应用场景,具体如下:1.基础设施层(InfrastructureLayer)这是AI系统的底层支持,主要涉及计算资源、存储、网络等基础设施。关键组成计算硬件GPU(如NVIDIAA100、H100)TPU(GoogleTensorProcessingUnit)NPU(如华为昇腾、寒武纪等)CPU(用于轻量级推理任务)</div>
</li>
<li><a href="/article/1899596956724948992.htm"
title="`http_port_t" target="_blank">`http_port_t</a>
<span class="text-muted">宜昌李国勇</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>`http_port_t`是SELinux(Security-EnhancedLinux)中的一种端口类型标签,用于标识哪些端口可以被HTTP和HTTPS服务使用。SELinux是一种强制访问控制(MAC)安全模块,它通过定义安全策略来限制进程对系统资源的访问,从而增强系统的安全性。###`http_port_t`的作用在SELinux中,每个网络端口都有一个类型标签,这些标签决定了哪些进程可以绑</div>
</li>
<li><a href="/article/1899596200680681472.htm"
title="用友U9二次开发-问题记录" target="_blank">用友U9二次开发-问题记录</a>
<span class="text-muted">MY-备忘</span>
<a class="tag" taget="_blank" href="/search/U9/1.htm">U9</a><a class="tag" taget="_blank" href="/search/%E7%94%A8%E5%8F%8B/1.htm">用友</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a>
<div>学习资料:链接:https://pan.baidu.com/s/13JbKSSRkSn2V6-dYX5zKFQ提取码:p9at页面&__dm=true客开插件&Admin=true开发者使用查看代码插件UI插件配置项1.关闭热插拔2.在configuration节点下加配置,多个在WebPartExtend节点下可以继续加ExtendedPart --对</div>
</li>
<li><a href="/article/1899596198172487680.htm"
title="[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例" target="_blank">[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例</a>
<span class="text-muted">鱼馬</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a>
<div>最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客、做着开源的大神。准备好好学习下新知识,并分享些博客与博友们一起进步,加油。非常基础的文章,大神请飘过,谢谢各位看官!文章目录一.工具&术语1.网安术语2.常用工具3.推荐文章二.常见攻击1.SQL注入2.XSS跨站3.越权漏洞4.CSRF跨站请求伪造5.支付漏洞三.音乐异或解密示</div>
</li>
<li><a href="/article/1899595943834087424.htm"
title="[JAVA设计模式]第四部分:行为模式" target="_blank">[JAVA设计模式]第四部分:行为模式</a>
<span class="text-muted">zzm_</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a>
<div>声明:原创作品,转载时请注明文章来自SAP师太技术博客(博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4261296.html行为模式不变(Immutable)模式模式结构策略(Strategy)模式模</div>
</li>
<li><a href="/article/1899595565394620416.htm"
title="js 封装ajax方法吗,原生JS封装ajax方法" target="_blank">js 封装ajax方法吗,原生JS封装ajax方法</a>
<span class="text-muted">里小咸</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E5%B0%81%E8%A3%85ajax%E6%96%B9%E6%B3%95%E5%90%97/1.htm">封装ajax方法吗</a>
<div>jquery框架的ajax方法固然好用,但是假如某天我们的项目不能引入jquery或项目需求很简单,没有很多交互功能,只需要ajax,这时引入jquery库会造成资源浪费,也会显得页面臃肿。这时我们就需要用原生JS写一个ajax函数了。/*封装ajax函数*@param{string}opt.typehttp连接的方式,包括POST和GET两种方式*@param{string}opt.url发送请</div>
</li>
<li><a href="/article/1899594683592536064.htm"
title="【光流】——liteflownet论文与代码浅读" target="_blank">【光流】——liteflownet论文与代码浅读</a>
<span class="text-muted">农夫山泉2号</span>
<a class="tag" taget="_blank" href="/search/%E5%85%89%E6%B5%81/1.htm">光流</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%85%89%E6%B5%81/1.htm">光流</a><a class="tag" taget="_blank" href="/search/liteflownet/1.htm">liteflownet</a>
<div>光流,liteflownetcode:mmflowCVPR20181.前言FlowNet2是最先进的光流估计卷积神经网络(CNN),需要超过160M的参数来实现精确的流量估计。在本文中,我们提出了一种替代网络,它在Sintel和KITTI基准测试上优于FlowNet2,同时在模型尺寸上要小30倍,在运行速度上要快1.36倍。这是通过深入研究当前框架中可能被遗漏的架构细节而实现的:(1)我们通过轻量</div>
</li>
<li><a href="/article/1899594179797905408.htm"
title="将自己的SSH密钥对导入YubiKey 5的PIV和智能卡模块,配合Putty和XShell使用" target="_blank">将自己的SSH密钥对导入YubiKey 5的PIV和智能卡模块,配合Putty和XShell使用</a>
<span class="text-muted">sbdx</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/yubikey/1.htm">yubikey</a><a class="tag" taget="_blank" href="/search/XShell/1.htm">XShell</a><a class="tag" taget="_blank" href="/search/PIV/1.htm">PIV</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>前言YubiKey是什么东西我就不多说,简单的说是一种用来保存私钥的硬件设备,私钥一旦写入就无法读出,比起保存在硬盘里的私钥文件,更安全。前段时间入手一个YubiKey5NFC,最近一直在研究怎么用来登录SSH。需求我手上已经有了一个SSH密钥对用来管理着几十台Linux服务器,,在YubikeyMmanager->PIV中只能重新生成密钥对,并且无法导出私钥,然而我不想更换的我的私钥,与我的需求</div>
</li>
<li><a href="/article/1899591660065583104.htm"
title="CSS笔记一" target="_blank">CSS笔记一</a>
<span class="text-muted">CspecialJ</span>
<a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>一、语法选择器{属性:属性值;属性:属性值}二、书写分类行内样式:直接通过style属性写在标签上123456页内样式:在html页面创建style标签外链样式:三、选择器3.1通用选择器*{padding:0pxmargin:0px}3.2标签选择器p{font-size:20pxwidth:20px}div{width:20pxheight:20px}3.3类选择器.div1{width:20</div>
</li>
<li><a href="/article/1899591280636260352.htm"
title="OkHttp源码解析(构建者模式、责任链模式、主线流程)" target="_blank">OkHttp源码解析(构建者模式、责任链模式、主线流程)</a>
<span class="text-muted">码农小风</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6/1.htm">开源框架</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/Android/1.htm">Android</a><a class="tag" taget="_blank" href="/search/%E8%B4%A3%E4%BB%BB%E9%93%BE%E6%A8%A1%E5%BC%8F/1.htm">责任链模式</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/OkHttp/1.htm">OkHttp</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6/1.htm">开源框架</a>
<div>在分析OkHttp的核心流程已经核心类之前,我们先搞清楚两个概念,一个是OkHttpClient和Request在创建时所使用的构建者模式;另外一个则是负责响应处理的拦截器模式;OkHttpClient/Request的构建者模式解析基本概念构建者(又称建造者)模式允许我们使用多个简单的对象一步一步构建成一个复杂的对象。概念解释如果你要装修房子,你就会要考虑这个房子的整体设计怎么做,用地中海风格?</div>
</li>
<li><a href="/article/1899591027220606976.htm"
title="第一篇:CTF入门指南:了解CTF的基本概念与比赛形式" target="_blank">第一篇:CTF入门指南:了解CTF的基本概念与比赛形式</a>
<span class="text-muted">菜腿承希</span>
<a class="tag" taget="_blank" href="/search/%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%B0%8F%E7%99%BD%E5%85%A5%E9%97%A8CTF/1.htm">零基础小白入门CTF</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</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/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>#零基础小白入门CTF解题到成为CTF大佬系列文章##引言CTF(CaptureTheFlag)是一种网络安全竞赛,参赛者需要通过解决各种安全相关的题目来获取“Flag”,从而得分。CTF题目通常涵盖密码学、逆向工程、漏洞利用、Web安全等多个领域。本系列文章将从零基础开始,逐步带你了解CTF的各个知识点,最终帮助你成为一名CTF大佬。##文章目录1.**CTF入门指南:了解CTF的基本概念与比赛</div>
</li>
<li><a href="/article/1899590900888170496.htm"
title="编程与脚本基础:网络安全的核心工具" target="_blank">编程与脚本基础:网络安全的核心工具</a>
<span class="text-muted">菜腿承希</span>
<a class="tag" taget="_blank" href="/search/%E9%9B%B6%E5%9F%BA%E7%A1%80%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">零基础网络安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
<div>###编程与脚本基础:网络安全的核心工具在上一篇教程中,我们探讨了操作系统和网络的基础知识。今天,我们将进入网络安全领域的另一个核心技能——编程与脚本。无论是自动化任务、开发安全工具,还是进行漏洞分析,编程和脚本都是网络安全从业者不可或缺的技能。本文将从编程基础入手,逐步引导你掌握网络安全中常用的编程语言和脚本技术。---####1.**为什么学习编程与脚本?**编程与脚本在网络安全中扮演着重要角</div>
</li>
<li><a href="/article/1899588253388959744.htm"
title="【RTSP】客户端(一):RTSP协议实现" target="_blank">【RTSP】客户端(一):RTSP协议实现</a>
<span class="text-muted">gma999</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
<div>概述RTSP主要功能总结RTSP本质是一个应用层协议,主要用于控制实时数据的传递,例如音视频流。RTSP的传输方式与HTTP类似,与HTTP不同在于RTSP主要用于控制传输媒体服务器上的流媒体会话。所以其是一个客户端-服务器模型,客户端需要发送请求给服务器,然后服务器返回响应主要功能建立和终止流媒体会话:客户端可以使用RTSP来请求服务器建立或者终止流媒体会话控制媒体流的播放:客户端实现控制媒体流</div>
</li>
<li><a href="/article/1899588126276382720.htm"
title="Dash-FastAPI-Admin 技术文档" target="_blank">Dash-FastAPI-Admin 技术文档</a>
<span class="text-muted">钟音洋Winona</span>
<div>Dash-FastAPI-Admin技术文档Dash-FastAPI-AdminAgeneralmiddleandbackendmanagementsystemdevelopedpurelyinPythonbasedonDash+FastAPI.基于Dash+FastAPI纯Python开发的一个通用中后台管理系统。项目地址:https://gitcode.com/gh_mirrors/da/Da</div>
</li>
<li><a href="/article/1899587873204662272.htm"
title="探索YubiKey的Go语言PIV实现:piv-go" target="_blank">探索YubiKey的Go语言PIV实现:piv-go</a>
<span class="text-muted">诸盼忱Gazelle</span>
<div>探索YubiKey的Go语言PIV实现:piv-gopiv-goKeysandcertificatesforYubiKeys,writteninGo项目地址:https://gitcode.com/gh_mirrors/pi/piv-go项目介绍piv-go是一个用Go语言实现的YubiKeyPIV(个人身份验证)规范的库。YubiKey是一种智能卡设备,广泛用于安全身份验证和加密操作。PIV规范</div>
</li>
<li><a href="/article/1899587873624092672.htm"
title="Yubico PIV Tool 常见问题解决方案" target="_blank">Yubico PIV Tool 常见问题解决方案</a>
<span class="text-muted">华坦璞Teresa</span>
<div>YubicoPIVTool常见问题解决方案yubico-piv-toolCommandlinetoolfortheYubiKeyPIVapplication项目地址:https://gitcode.com/gh_mirrors/yu/yubico-piv-tool项目基础介绍YubicoPIVTool是一个用于与YubiKey上的个人身份验证(PIV)应用程序进行交互的命令行工具。通过该工具,用户</div>
</li>
<li><a href="/article/1899587874051911680.htm"
title="Dash FastAPI Admin项目教程" target="_blank">Dash FastAPI Admin项目教程</a>
<span class="text-muted">倪燃喆Queenie</span>
<div>DashFastAPIAdmin项目教程项目地址:https://gitcode.com/gh_mirrors/da/Dash-FastAPI-Admin项目介绍DashFastAPIAdmin是一个基于FastAPI构建的后台管理界面框架,它旨在简化现代Web应用程序的管理任务。该项目利用了Dash库的强大图形界面功能,结合FastAPI的高性能和简洁的API设计,为开发者提供了一个开箱即用的解</div>
</li>
<li><a href="/article/1899587746876420096.htm"
title="推荐项目:Yubico PIV Tool" target="_blank">推荐项目:Yubico PIV Tool</a>
<span class="text-muted">刘瑛蓉</span>
<div>推荐项目:YubicoPIVToolyubico-piv-toolCommandlinetoolfortheYubiKeyPIVapplication项目地址:https://gitcode.com/gh_mirrors/yu/yubico-piv-tool1、项目介绍YubicoPIVTool是一个与YubiKey的个人身份验证(PIV)应用交互的强大工具。它允许你在设备上生成密钥,导入密钥和证</div>
</li>
<li><a href="/article/1899587620510429184.htm"
title="探索Yubico PIV工具:安全身份验证的新纪元" target="_blank">探索Yubico PIV工具:安全身份验证的新纪元</a>
<span class="text-muted">秋玥多</span>
<div>探索YubicoPIV工具:安全身份验证的新纪元yubico-piv-toolCommandlinetoolfortheYubiKeyPIVapplication项目地址:https://gitcode.com/gh_mirrors/yu/yubico-piv-tool项目介绍YubicoPIV工具是一款专为与YubiKey上的个人身份验证(PIV)应用交互而设计的软件。YubiKey是一种流行的</div>
</li>
<li><a href="/article/1899587494295433216.htm"
title="探索Dash-FastAPI-Admin:一款强大的Web应用后台构建工具" target="_blank">探索Dash-FastAPI-Admin:一款强大的Web应用后台构建工具</a>
<span class="text-muted">司莹嫣Maude</span>
<div>探索Dash-FastAPI-Admin:一款强大的Web应用后台构建工具项目地址:https://gitcode.com/gh_mirrors/da/Dash-FastAPI-Admin是一个开源项目,它结合了Dash和FastAPI两大流行框架的威力,为开发者提供了一站式解决方案,用于快速构建美观且功能丰富的Web应用后台。通过本文,我们将深入了解其核心特性、工作原理,以及如何利用它来提升开发</div>
</li>
<li><a href="/article/1899585601938714624.htm"
title="AttributeError: ‘NoneType‘ object has no attribute ‘astype‘" target="_blank">AttributeError: ‘NoneType‘ object has no attribute ‘astype‘</a>
<span class="text-muted">冰虺</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
<div>今天在复现fasterRCNN网络时,出现AttributeError:'NoneType'objecthasnoattribute'astype'报错,如下图所示通过dug,发现im的shape为none,究其原因是因为cv.imread无法读取图像,主要原因是因为我数据集中存在中文名称。更加详细的请参考一下大佬的博客pythoncv2.imread读取中文路径的图片返回为None的问题_陶将的</div>
</li>
<li><a href="/article/1899584468054765568.htm"
title="网络编程基础知识总结" target="_blank">网络编程基础知识总结</a>
<span class="text-muted">老梁学Android&HarmonyOS</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/1.htm">网络编程</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
<div>1、网络编程的基础知识总结网络编程说的是在不同计算机之间进行数据传输和通信。本文主要是一些基础知识的总结:本文的“计算机”包含电脑、手机、平板、手表、汽车等可以联网的设备。1.1网络协议1.1.1描述:网络协议是计算机网络中通信双方共同遵守的规则和约定,就是马路上的红绿灯约定红灯停绿灯行一样,专门用于指导数据的传输和处理。1.1.2协议层次:协议通常有两种说法,分别是OSI七层模型或TCP/IP四</div>
</li>
<li><a href="/article/1899583963257696256.htm"
title="工程化与框架系列(29)--前端错误处理实践" target="_blank">工程化与框架系列(29)--前端错误处理实践</a>
<span class="text-muted">一进制ᅟᅠ </span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%8C%96%E4%B8%8E%E6%A1%86%E6%9E%B6/1.htm">前端工程化与框架</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%8A%B6%E6%80%81%E6%A8%A1%E5%BC%8F/1.htm">状态模式</a>
<div>前端错误处理实践引言前端错误处理是保证应用稳定性和用户体验的关键环节。本文将深入探讨前端错误处理的最佳实践,包括错误捕获、监控、上报和恢复等方面,帮助开发者构建更加健壮的前端应用。错误处理概述前端错误处理主要包括以下方面:错误捕获:运行时错误、Promise错误、网络错误等错误监控:错误收集、分析和统计错误上报:错误信息发送到服务器错误恢复:优雅降级和容错处理调试支持:错误定位和调试辅助错误处理实</div>
</li>
<li><a href="/article/1899582447910187008.htm"
title="从零开始搭建私有云服务器" target="_blank">从零开始搭建私有云服务器</a>
<span class="text-muted">6v6-博客</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
<div>从零开始搭建私有云服务器1.准备工作硬件要求:一台性能足够的服务器(可以是物理机或虚拟机)。建议配置:至少4核CPU、8GB内存、100GB硬盘。操作系统:推荐使用UbuntuServer20.04LTS。网络环境:确保服务器有稳定的公网IP或内网穿透能力。2.安装操作系统下载UbuntuServer20.04LTS镜像:https://ubuntu.com/download/server。使用工</div>
</li>
<li><a href="/article/1899580809438883840.htm"
title="自学网络安全(黑客技术)2025年 —90天学习计划" target="_blank">自学网络安全(黑客技术)2025年 —90天学习计划</a>
<span class="text-muted">网安CILLE</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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/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/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
<div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包前言什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。如何成为一名黑客很多朋友在学习安全方面都会半路转行,因为不知如何去学,在这里,我将这个整份答案分为黑客(网络安全)入门必备、黑客(网络安全)职业指南、黑客(网络安全)学习</div>
</li>
<li><a href="/article/1899580179144044544.htm"
title="前端(AJAX)学习笔记(CLASS 4):进阶" target="_blank">前端(AJAX)学习笔记(CLASS 4):进阶</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/%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>
<div>1、同步代码和异步代码同步代码:浏览器按照书写代码的顺序一行一行去执行代码,逐行执行,需要原地等待结果后,才继续向下执行异步代码:调用后耗时,不阻塞代码继续执行,在将来完成后触发一个回调函数2、回调函数地狱和Promise链式调用概念:在回调函数中嵌套回调函数,从而形成回调函数地狱缺点:可读性差,异常无法捕获,耦合性严重,牵一发动全身promise-链式调用概念:依靠then()方法会返回一个新生</div>
</li>
<li><a href="/article/1899579548907925504.htm"
title="RHCE-web篇" target="_blank">RHCE-web篇</a>
<span class="text-muted">2022计科一班唐文</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
<div>一.web服务器Web服务器是一种软件或硬件系统,用于接收、处理和响应来自客户端(通常是浏览器)的HTTP请求。它的主要功能是存储和提供网站内容,比如HTML页面、图像、视频等。Web服务器的主要功能处理请求:当用户在浏览器中输入网址时,浏览器会发送一个HTTP请求到Web服务器。服务器接收到请求后,处理该请求并生成响应。提供内容:Web服务器根据请求的资源类型(例如HTML、CSS、JavaSc</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> |