HTTP协议

目录

HTTP/HTTPS简介

http相关技术

web开发语言

html

css

JS

MIME

URL

网站访问

IP(独立IP):

PV(访问量):

UV(独立访客):

HTTP工作机制

web资源

资源类型:

静态文件:

动态文件:

HTTP连接请求

 提高HTTP连接性能

 HTTP协议版本

HTTP1.0和HTTP1.1的区别

HTTP请求访问的完整过程

一次完整的http请求处理过程

get与post区别

编译安装httpd

相关文件

1、配置文件

2、服务单元文件

3、服务控制和启动

4、站点网页文档根目录

5、模块文件路径

6、主服务器程序文件

7、主进程文件

8、日志文件目录


HTTP/HTTPS简介

HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件、图片文件、查询结果等)。

HTTPS 协议是 HyperText Transfer Protocol Secure(超文本传输安全协议)的缩写,是一种通过计算机网络进行安全通信的传输协议。

HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包,HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。

HTTP 的 URL 是由 http:// 起始与默认使用端口 80,而 HTTPS 的 URL 则是由 https:// 起始与默认使用端口443

http相关技术

web开发语言

http:Hyper Text Transfer Protocol 应用层协议,默认端口: 80/tcp

web前端开发语言

  • html
  • css
  • javascript

html

hyper text markup language 超文本标记语言,编程语言,主要负责实现页面的结构

定义了文档的标题<br> <base> 定义了页面链接标签的默认链接地址<br> <link> 定义了一个文档和外部资源之间的关系<br> <meta> 定义了 HTML 文档中的元数据<br> <script> 定义了客户端的脚本文件<br> <style> 定义了 HTML 文档的样式文件</p> <p><table> 定义一个表格<br> <tr> 定义了表格中的一行<br> <td> 定义了表格中某一行的一列<br> <a> 定义了一个超链接<br> <br> 定义了换行<br> <font> 定义了字体</p> <p>例子<br> <html><br> <head>网页的内容描述信息<head><br> <body>网页显示的内容</body><br> </html></p> </blockquote> <h3 id="css">css</h3> <p>Cascading Style Sheet 层叠样式表, 定义了如何显示(装扮) HTML 元素,比如:字体大小和颜色属性等。样式通常保存在外部的 .css 文件中,用于存放一些HTML文件的公共属性,从而通过仅编辑一个简单的 CSS 文档,可以同时改变站点中所有页面的布局和外观</p> <blockquote> <p><html><br> <head><br> <meta http-equiv=Content-Type content="text/html;charset=utf-8"><br> <link rel="stylesheet" type="text/css" href="mystyle.css" /><br> </head><br> <body><br> <h1>这是 heading 1</h1><br> <p>这是一段普通的段落。请注意,该段落的文本是红色的。在 body 选择器中定义了本页面中的默认文本颜色。</p><br> <p class="ex">该段落定义了 class="ex"。该段落中的文本是蓝色的。</p><br> </body><br> </html></p> </blockquote> <h3 id="JS">JS</h3> <p>javascript,实现网页的动画效果,但实属于静态资源</p> <blockquote> <p><!DOCTYPE html><br> <html><br> <head><br> <meta http-equiv=Content-Type content="text/html;charset=utf-8"><br> </head><br> <body><br> <h2>我的第一个 JavaScript</h2><br> <button type="button"<br> οnclick="document.getElementById('demo').innerHTML = Date()"><br> 点击这里来显示日期和时间<br> </button><br> <p id="demo"></p><br> </body><br> </html></p> </blockquote> <h3 id="MIME">MIME</h3> <p>MIME : Multipurpose Internet Mail Extensions 多用途互联网邮件扩展</p> <p>文件 /etc/mime.types ,来自于mailcap包</p> <p>MIME格式:type/subtype</p> <blockquote> <p>text/plain   <br> text/html  <br> text/css <br> image/jpeg   jpg jpeg<br> image/png <br> video/mp4 <br> application/javascript</p> <p>  tar.gz</p> </blockquote> <h3 id="URL">URL</h3> <p>URL: Uniform Resource Identifier 统一资源标识,分为URL 和 URN</p> <p>URN:Uniform Resource Naming,统一资源命名</p> <p>URL:Uniform Resorce Locator,统一资源定位符,用于描述某服务器某特定资源位置两者区别:URN如同一个人的名称,而URL代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。URN仅用于命名,而不指定地址</p> <p><a href="http://img.e-com-net.com/image/info8/c655ee525682421bb569b73449217a80.jpg" target="_blank"><img alt="HTTP协议_第1张图片" height="140" src="http://img.e-com-net.com/image/info8/c655ee525682421bb569b73449217a80.jpg" width="650" style="border:1px solid black;"></a></p> <blockquote> <p> <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag><br> scheme:方案,访问服务器以获取资源时要使用哪种协议   http://<br> user:用户,某些方案访问资源时需要的用户名<br> password:密码,用户对应的密码,中间用:分隔<br> Host:主机,资源宿主服务器的主机名或IP地址          http://www.baidu.com:80/bzj/zhj.jpg    主机名<br> port:端口,资源宿主服务器正在监听的端口号,很多方案有默认端口号<br> path:路径,服务器资源的本地名,由一个/将其与前面的URL组件分隔<br> params:参数,指定输入的参数,参数为名/值对,多个参数,用;分隔<br> query:查询,传递参数给程序,如数据库,用?分隔,多个查询用&分隔<br> frag:片段,一小片或一部分资源的名字,此组件在客户端使用,用#分隔</p> </blockquote> <h2 id="%E7%BD%91%E7%AB%99%E8%AE%BF%E9%97%AE">网站访问</h2> <h3 id="IP(%E7%8B%AC%E7%AB%8BIP)%EF%BC%9A">IP(独立IP):</h3> <p>     即Internet Protocol,指独立IP数。一天内来自相同客户机IP 地址只计算一次,记录远程客户机IP地址的计算机访问网站的次数,是衡量网站流量的重要指标</p> <h3 id="PV(%E8%AE%BF%E9%97%AE%E9%87%8F)%EF%BC%9A">PV(访问量):</h3> <p>     即Page View, 页面浏览量或点击量,用户每次刷新即被计算一次,PV反映的是浏览某网站的页面数,PV与来访者的数量成正比,PV并不是页面的来访者数量,而是网站被访问的页面数量</p> <h3 id="UV(%E7%8B%AC%E7%AB%8B%E8%AE%BF%E5%AE%A2)%EF%BC%9A">UV(独立访客):</h3> <p>     即Unique Visitor,访问网站的一台电脑为一个访客。一天内相同的客户端只被计算一次。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的</p> <h2 id="HTTP%E5%B7%A5%E4%BD%9C%E6%9C%BA%E5%88%B6">HTTP工作机制</h2> <p>一次http事务包括:</p> <ul> <li>http请求:http request</li> <li>http响应:http response</li> </ul> <h2 id="web%E8%B5%84%E6%BA%90">web资源</h2> <p>      web resource, 一个网页由多个资源(文件)构成,打开一个页面,通常会有多个资源展示出来,但是每个资源都要单独请求。因此,一个"Web 页面”通常并不是单个资源,而是一组资源的集合</p> <h2 id="%E8%B5%84%E6%BA%90%E7%B1%BB%E5%9E%8B%EF%BC%9A">资源类型:</h2> <h3 id="%E9%9D%99%E6%80%81%E6%96%87%E4%BB%B6%EF%BC%9A">静态文件:</h3> <p>无需服务端做出额外处理,服务器端和客户端的文件内容相同</p> <blockquote> <p>文件后缀:.html, .txt, .jpg, .js, .css, .mp3, .avi</p> </blockquote> <p>       在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,静态网页是标准的HTML文件,它的文件扩展名是.htm、.html。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的。</p> <h3 id="%E5%8A%A8%E6%80%81%E6%96%87%E4%BB%B6%EF%BC%9A">动态文件:</h3> <p>服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同</p> <blockquote> <p>文件后缀:.php, .jsp ,.asp</p> </blockquote> <p>        所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。<br> 动态网页是基本的html语法规范与Java、PHP、C#等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。</p> <h2 id="HTTP%E8%BF%9E%E6%8E%A5%E8%AF%B7%E6%B1%82"><br> HTTP连接请求</h2> <ul> <li>串行连接</li> <li>并行连接</li> </ul> <p><a href="http://img.e-com-net.com/image/info8/f7dfc52408794102ac15824784b8f836.jpg" target="_blank"><img alt="HTTP协议_第2张图片" height="422" src="http://img.e-com-net.com/image/info8/f7dfc52408794102ac15824784b8f836.jpg" width="650" style="border:1px solid black;"></a></p> <h3 id="%C2%A0%E6%8F%90%E9%AB%98HTTP%E8%BF%9E%E6%8E%A5%E6%80%A7%E8%83%BD"> 提高HTTP连接性能</h3> <ul> <li>并行连接:通过多条TCP连接发起并发的HTTP请求</li> <li>持久连接:keep-alive,重用TCP连接,以消除连接和关闭的时延,以事务个数和时间来决定是否关闭连接</li> <li>管道化连接:通过共享TCP连接,发起并发的HTTP请求</li> <li>复用的连接:交替传送请求和响应报文(实验阶段)</li> </ul> <p><a href="http://img.e-com-net.com/image/info8/9e5ed167ab8c45eda1a9a756e6ada284.jpg" target="_blank"><img alt="HTTP协议_第3张图片" height="441" src="http://img.e-com-net.com/image/info8/9e5ed167ab8c45eda1a9a756e6ada284.jpg" width="650" style="border:1px solid black;"></a></p> <h3 id="%C2%A0HTTP%E5%8D%8F%E8%AE%AE%E7%89%88%E6%9C%AC"> HTTP协议版本</h3> <p>      HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。</p> <p>      服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。</p> <ul> <li>HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。</li> <li>HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。</li> <li>HTTP/1.1:引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,能很好地配合代理服务器工作。还支持管道方式机制,即在同一个TCP连接里面,客户端可以同时发送多个请求,以便降低线路负载,提高传输速度。</li> <li>HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。引入了头信息压缩机制,使用gzip或compress压缩后再发送。支持服务端推送,允许服务器未经请求,主动向客户端发送资源。<br>  </li> </ul> <p><a href="http://img.e-com-net.com/image/info8/ca3f43b766ec4a28800b67f97ebaeec7.jpg" target="_blank"><img alt="HTTP协议_第4张图片" height="271" src="http://img.e-com-net.com/image/info8/ca3f43b766ec4a28800b67f97ebaeec7.jpg" width="650" style="border:1px solid black;"></a></p> <h2 id="HTTP1.0%E5%92%8CHTTP1.1%E7%9A%84%E5%8C%BA%E5%88%AB"><strong>HTTP1.0和HTTP1.1的区别</strong></h2> <ul> <li> <p>缓存处理,在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-NoneMatch等更多可供选择的缓存头来控制缓存策略</p> </li> <li> <p>带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如:客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),方便了开发者自由的选择以便于充分利用带宽和连接</p> </li> <li> <p>错误通知的管理,在HTTP1.1中新增24个状态响应码,如409(Conflict)表示请求的资源与资源当前状态冲突;410(Gone)表示服务器上的某个资源被永久性的删除</p> </li> <li> <p>Host 头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)</p> </li> <li> <p>长连接,HTTP 1.1支持持久连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,弥补了HTTP1.0每次请求都要创建连接的缺点</p> </li> </ul> <h2 id="HTTP%E8%AF%B7%E6%B1%82%E8%AE%BF%E9%97%AE%E7%9A%84%E5%AE%8C%E6%95%B4%E8%BF%87%E7%A8%8B">HTTP请求访问的完整过程</h2> <p><a href="http://img.e-com-net.com/image/info8/fa13bdfa4bba4aab9ace449357c1a81f.jpg" target="_blank"><img alt="HTTP协议_第5张图片" height="555" src="http://img.e-com-net.com/image/info8/fa13bdfa4bba4aab9ace449357c1a81f.jpg" width="650" style="border:1px solid black;"></a></p> <blockquote> <p> 请求行:请求行由请求方法、URL 以及协议版本三部分组成。<br> 请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。<br> 空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。<br> 请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。<br> 常用的请求头:<br> 请求头                描述<br> Host                      接受请求的服务器地址,可以是 IP:端口号,也可以是域名<br> User-Agent            发送请求的应用程序名称<br> Connection             指定与连接相关的属性,如 Connection:Keep-Alive<br> Accept-Charset        通知服务端可以发送的编码格式<br> Accept-Encoding        通知服务端可以发送的数据压缩格式<br> Accept-Language        通知服务端可以发送的语言<br> 响应报文<br> 状态行:状态行由协议版本,状态码,状态码描述三部分组成。<br> 响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。<br> 空行:响应头部的最后会有一个空行,表示响应头部结束。<br> 响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。<br> 常见响应头:<br> 响应头                描述<br> Server                        服务器应用程序软件的名称和版本<br> Content-Type             响应正文的类型(是图片还是二进制字符串)<br> Content-Length          响应正文长度<br> Content-Charset        响应正文使用的编码<br> Content-Encoding      响应正文使用的数据压缩格式<br> Content-Language     响应正文使用的语言</p> </blockquote> <h2 id="%E4%B8%80%E6%AC%A1%E5%AE%8C%E6%95%B4%E7%9A%84http%E8%AF%B7%E6%B1%82%E5%A4%84%E7%90%86%E8%BF%87%E7%A8%8B">一次完整的http请求处理过程</h2> <p>1、建立连接:接收或拒绝连接请求</p> <p>2、接收请求:接收客户端请求报文中对某资源的一次请求的过程</p> <p>3、处理请求:服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息,根据方法,资源,首部和可选的主体部分对请求进行处理 常用请求Method: GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS</p> <p>4、访问资源:</p> <p>服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源</p> <p>5、构建响应报文:</p> <p>一旦Web服务器识别除了资源,就执行请求方法中描述的动作,并返回响应报文。响应报文中 包含有响应状态码、响应首部,如果生成了响应主体的话,还包括响应主体</p> <p>1、响应实体:如果事务处理产生了响应主体,就将内容放在响应报文中回送过去。响应报文中通常包括:</p> <p>描述了响应主体MIME类型的Content-Type首部</p> <p>描述了响应主体长度的Content-Length</p> <p>实际报文的主体内容</p> <p>2、URL重定向:web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径</p> <p>3、MIME类型: Web服务器要负责确定响应主体的MIME类型。多种配置服务器的方法可将MIME类型与资源管理起来</p> <ul> <li> <p>魔法分类:Apache web服务器可以扫描每个资源的内容,并将其与一个已知模式表(被称为魔法文件)进行匹配,以决定每个文件的MIME类型。这样做可能比较慢,但很方便,尤其是文件没有标准扩展名时</p> </li> <li> <p>显式分类:可以对Web服务器进行配置,使其不考虑文件的扩展名或内容,强制特定文件或目录内容拥有某个MIME类型</p> </li> <li> <p>类型协商: 有些Web服务器经过配置,可以以多种文档格式来存储资源。在这种情况下,可以配置Web服务器,使其可以通过与用户的协商来决定使用哪种格式(及相关的MIME类型)"最好"</p> </li> </ul> <p>6、发送响应报文</p> <p>Web服务器通过连接发送数据时也会面临与接收数据一样的问题。服务器可能有很多条到各个客户端的连接,有些是空闲的,有些在向服务器发送数据,还有一些在向客户端回送响应数据。服务器要记录连接的状态,还要特别注意对持久连接的处理。对非持久连接而言,服务器应该在发送了整条报文之后,关闭自己这一端的连接。对持久连接来说,连接可能仍保持打开状态,在这种情况下,服务器要正确地计算Content-Length首部,不然客户端就无法知道响应什么时候结束</p> <p>7、记录日志</p> <p>最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务</p> <h2 id="get%E4%B8%8Epost%E5%8C%BA%E5%88%AB">get与post区别</h2> <ul> <li>语义上的区别</li> </ul> <p>Get向服务器请求数据,依照HTTP协议,get 是用来请求数据。</p> <p>Post向服务器发数据,依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语</p> <p>义,该操作是会修改服务器上的数据</p> <ul> <li>服务器请求的区别</li> </ul> <p>Get请求是可以被缓存,示例:访问百度,访问的方式就是GET,此时访问后的内容会缓被存在浏览器中,短时间再次访问,其实是拿到的浏览器中的缓存内容</p> <p>另外Get请求只能接收ASCII码的回复</p> <p>Post请求是不可以被缓存的。对于Post方式提交表单,刷新页面浏览器会弹出提示框“是否重新提交表单”,Post可以接收二进制等各种数据形式,所以如果要上传文件一般用Post请求</p> <p></p> <ul> <li>参数放请求头和请求体的差别</li> </ul> <p>Get请求通常没有请求体(当然这也是可以由程序猿心情改变的),在TCP传输中只需传输一次(而不是一个包),所以Get请求效率相对高。</p> <p>Post请求将数据放在请求体中,而实际传输中,会先传输完请求头,再传输请求体,是分为两次传输的(而不是两个包)。Post请求头会比Get更小(一般不带参数),请求头更容易在一个TCP包中完成传输,更何况请求头中有Content-Length的标识,可以更好地保证Http包的完整性。<br>  </p> <table border="1" style="width:690px;"> <thead> <tr> <th style="text-align:center;">GET方法</th> <th style="text-align:center;">POST方法</th> </tr> </thead> <tbody> <tr> <td>从指定的服务器上获得数据</td> <td>提交数据给指定服务器处理</td> </tr> <tr> <td>GET请求能被缓存</td> <td>POST请求不能被缓存</td> </tr> <tr> <td>GET请求会保存在浏览器的浏览纪录里(cookit)</td> <td>POST请求不会保存在浏览器的浏览纪录里</td> </tr> <tr> <td>GET请求有长度的限制</td> <td>POST请求没有长度限制</td> </tr> <tr> <td>主要用于获取数据</td> <td>查询的字符串不会显示在URL中,比较安全</td> </tr> <tr> <td>查询的字符串会显示在URL中,不安全</td> <td></td> </tr> </tbody> </table> <p>常见状态返回码</p> <table border="1" style="width:690px;"> <thead> <tr> <th style="text-align:center;">状态码首位</th> <th style="text-align:center;">已定义范围</th> <th style="text-align:center;">分类</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">1xx</td> <td style="text-align:center;">100-101</td> <td style="text-align:center;">信息提示</td> </tr> <tr> <td style="text-align:center;">2xx</td> <td style="text-align:center;">200-206</td> <td style="text-align:center;">成功</td> </tr> <tr> <td style="text-align:center;">3xx</td> <td style="text-align:center;">300-305</td> <td style="text-align:center;">重定向</td> </tr> <tr> <td style="text-align:center;">4xx</td> <td style="text-align:center;">400-415</td> <td style="text-align:center;">客户端错误</td> </tr> <tr> <td style="text-align:center;">5xx</td> <td style="text-align:center;">500-505</td> <td style="text-align:center;">服务端错误</td> </tr> </tbody> </table> <p>常见HTTP状态码</p> <table border="1" style="width:600px;"> <thead> <tr> <th style="text-align:center;">消息</th> <th style="text-align:center;">描述</th> </tr> </thead> <tbody> <tr> <td>200   OK</td> <td>一切正常、请求成功</td> </tr> <tr> <td>301   Moved Permanently</td> <td>永久重定向</td> </tr> <tr> <td>302   Moved Temporarily</td> <td>临时重定向</td> </tr> <tr> <td>401   Unauthorized</td> <td>用户名或密码错误</td> </tr> <tr> <td>403   Forbidden</td> <td>禁止访问(客户端ip地址被拒绝)</td> </tr> <tr> <td>404   Not Found</td> <td>请求的文件不存在 </td> </tr> <tr> <td>414   Request-URL Too Long</td> <td>请求URL头部过长</td> </tr> <tr> <td>500   Internal Server Error</td> <td>服务器内部错误</td> </tr> <tr> <td>502   Bad Gateway</td> <td>无效网关</td> </tr> <tr> <td>503   Service Unavailable</td> <td>当前服务不可用</td> </tr> <tr> <td>504   Gateway Timeout</td> <td>网关请求超时</td> </tr> </tbody> </table> <h1 id="%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85httpd">编译安装httpd</h1> <pre><code class="hljs">systemctl stop firewalld systemctl disable firewalld setenforce 0 #关闭防火墙 yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl #安装依赖环境,编译工具等 yum -y install \ gcc \ #C语言的编译器 gcc-c++ \ #C++的编译器 make \ #源代码编译器(源代码转换成二进制文件) pcre \ #pcre是一个Perl函数库,包括perl 兼容的正则表达式库 pcre-devel \ #perl的接口开发包 expat-devel \ #用于支持网站解析HTML、XML文件 perl #perl语言编译器 [root@localhost opt]# tar zxvf apr-1.6.2.tar.gz [root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz [root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2 [root@localhost opt]# mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr [root@localhost opt]# mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util [root@localhost opt]# cd /opt/httpd-2.4.29/ [root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi ./configure \ --prefix=/usr/local/httpd \ #指定将 httpd 服务程序的安装路径 --enable-so \ #启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力 --enable-rewrite \ #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护 --enable-charset-lite \ #启动字符集支持,以便支持使用各种字符集编码的页面 --enable-cgi #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力 make make -j 2 #创建软连接 ln -s /usr/local/httpd/conf/httpd.conf /etc/ ln -s /usr/local/httpd/bin/* /usr/local/bin/ vim /lib/systemd/system/httpd.service [Unit] Description=The Apache HTTP Server #描述 After=network.target #描述服务类别 [Service] Type=forking #后台运行方式 PIDFile=/usr/local/httpd/logs/httpd.pid #PID文件位置 ExecStart=/usr/local/bin/apachectl $OPTIONS #启动服务 ExecReload=/bin/kill -HUP $MAINPID #根据PID重载配置 [Install] WantedBy=multi-user.target </code></pre> <h2 id="%E7%9B%B8%E5%85%B3%E6%96%87%E4%BB%B6">相关文件</h2> <h3 id="1%E3%80%81%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">1、配置文件</h3> <ul> <li> <p>/etc/httpd/conf/httpd.conf 主配置文件</p> </li> <li> <p>/etc/httpd/conf.d/*.conf 子配置文件</p> </li> <li> <p>/etc/httpd/conf.d/conf.modules.d/ 模块加载的配置文件</p> </li> </ul> <p>检查配置语法:httpd -t 或 apache2 -t</p> <h3 id="2%E3%80%81%E6%9C%8D%E5%8A%A1%E5%8D%95%E5%85%83%E6%96%87%E4%BB%B6">2、服务单元文件</h3> <ul> <li> <p>/usr/lib/systemd/system/httpd.service</p> </li> <li> <p>配置文件:/etc/sysconfig/httpd</p> </li> </ul> <h3 id="3%E3%80%81%E6%9C%8D%E5%8A%A1%E6%8E%A7%E5%88%B6%E5%92%8C%E5%90%AF%E5%8A%A8">3、服务控制和启动</h3> <ul> <li> <p>systemctl enable|disable httpd.service</p> </li> <li> <p>systemctl {start|stop|restart|status|reload} httpd.service</p> </li> <li> <p>apachectl start|stop|restart|configtest</p> </li> <li> <p>service httpd configtest</p> </li> </ul> <h3 id="4%E3%80%81%E7%AB%99%E7%82%B9%E7%BD%91%E9%A1%B5%E6%96%87%E6%A1%A3%E6%A0%B9%E7%9B%AE%E5%BD%95">4、站点网页文档根目录</h3> <p>/var/www/html</p> <h3 id="5%E3%80%81%E6%A8%A1%E5%9D%97%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84">5、模块文件路径</h3> <ul> <li> <p>/etc/httpd/modules</p> </li> <li> <p>/usr/lib64/httpd/modules</p> </li> </ul> <h3 id="6%E3%80%81%E4%B8%BB%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A8%8B%E5%BA%8F%E6%96%87%E4%BB%B6">6、主服务器程序文件</h3> <p>/usr/sbin/httpd</p> <h3 id="7%E3%80%81%E4%B8%BB%E8%BF%9B%E7%A8%8B%E6%96%87%E4%BB%B6">7、主进程文件</h3> <p> /etc/httpd/run/httpd.pid</p> <h3 id="8%E3%80%81%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95">8、日志文件目录</h3> <ul> <li> <p>/var/log/httpd</p> </li> <li> <p>access_log: 访问日志</p> </li> <li> <p>error_log:错误日志</p> </li> </ul> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1642117803794292736"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(http,服务器,网络协议)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1891810643145715712.htm" title="一台服务器最多可以允许多少人同时访问?IIS连接数如何计算?" target="_blank">一台服务器最多可以允许多少人同时访问?IIS连接数如何计算?</a> <span class="text-muted">网硕互联的小客服</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><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>一台服务器能够同时允许多少人访问,取决于多个硬件和软件配置因素,包括服务器的CPU、内存、网络带宽、磁盘I/O性能,以及使用的Web服务器软件(如IIS、Apache等)和应用架构。特别是对于使用IIS(InternetInformationServices)的服务器,最大连接数通常受Windows操作系统的版本、IIS配置和硬件资源等因素的限制。1.服务器允许的最大连接数的影响因素1.1服务器硬</div> </li> <li><a href="/article/1891808374522179584.htm" title="remix中为什么Dev -Ganache Provider没有了; remix中区块链常见的链接方式有哪些" target="_blank">remix中为什么Dev -Ganache Provider没有了; remix中区块链常见的链接方式有哪些</a> <span class="text-muted">ZhangJiQun&MXP</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E5%AD%A6/1.htm">教学</a><a class="tag" taget="_blank" href="/search/2021/1.htm">2021</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/2021/1.htm">2021</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87/1.htm">论文</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/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/1.htm">智能合约</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/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/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>remix中区块链常见的链接方式有哪些目录remix中区块链常见的链接方式有哪些remix中为什么Dev-GanacheProvider没有了Custom-ExternalHttpProvider:自定义外部HTTP提供者,允许用户连接到自定义的外部HTTP节点,可用于连接到自己搭建的区块链节点或第三方提供的节点服务,有较大灵活性,能满足不同网络环境和特定需求。RemixVM(Cancun):Re</div> </li> <li><a href="/article/1891806482899464192.htm" title="Node.js 中 morgan 依赖详解" target="_blank">Node.js 中 morgan 依赖详解</a> <span class="text-muted">yqcoder</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><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> <div>记录每个HTTP请求的详细信息,方便开发者调试和监控应用程序。一、安装npminstallmorgan二、基本使用constexpress=require("express");constmorgan=require("morgan");constapp=express();//使用morgan中间件,默认日志格式为'dev'app.use(morgan("dev"));app.get("/",(</div> </li> <li><a href="/article/1891805840252399616.htm" title="家里WiFi信号差,如何解决?" target="_blank">家里WiFi信号差,如何解决?</a> <span class="text-muted">xiaoweids</span> <a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E8%84%91/1.htm">电脑</a> <div>转自:微点阅读https://www.weidianyuedu.com现在,大家都离不开WiFi了,到亲戚朋友家串个门第一件事也是连WiFi,连得多了,相信大家心中都会有个疑惑:为啥WiFi信号总是这么差?一般情况下,在室内环境中,我们手机接收到的WiFi信号主要是反射、绕射、漫射和穿透这四种效应的叠加。后三种效应都和信号的频率关系很大,频率越高绕射和穿透的能力越差。总的来说,木头、玻璃这些障碍物</div> </li> <li><a href="/article/1891805331277803520.htm" title="Debian/Ubuntu云服务器配置最速实践笔记[1]" target="_blank">Debian/Ubuntu云服务器配置最速实践笔记[1]</a> <span class="text-muted">打磨怪</span> <a class="tag" taget="_blank" href="/search/%E6%9C%80%E9%80%9F%E5%AE%9E%E8%B7%B5/1.htm">最速实践</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/debian/1.htm">debian</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/%E8%85%BE%E8%AE%AF%E4%BA%91/1.htm">腾讯云</a> <div>在腾讯云购买了一台轻量云服务器跑几个机器人用,一篇基础配置的实践笔记系统是Debian11,理论上Ubuntu等衍生版本基本可以无修改地参考添加普通用户安装Docker安装Node.js安装miniconda安装JupyterNotebook及后台启动Q&A参考资料先关机;重置密码(设定root密码);开机添加用户//先切换到rootsuroot//添加一个普通用户sudoadduser//确定该</div> </li> <li><a href="/article/1891805203657715712.htm" title="helm部署jenkins及使用pipeline流水线" target="_blank">helm部署jenkins及使用pipeline流水线</a> <span class="text-muted">意海还念か</span> <a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a> <div>helm部署jenkins及使用pipeline流水线1.安装helm略,请参考本专栏helm文档2.创建存储类storageClass请参考《helm搭建NFS的StorageClass》,本专栏可以查看到3.helm添加jenkins官方仓库#helmrepoaddjenkinscihttps://charts.jenkins.io#helmrepoupdate4.helm去pull下载jen</div> </li> <li><a href="/article/1891803181751529472.htm" title="HoRain云--浅析CoreDNS的工作机制" target="_blank">HoRain云--浅析CoreDNS的工作机制</a> <span class="text-muted">HoRain 云小助手</span> <a class="tag" taget="_blank" href="/search/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95/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/CoreDNS/1.htm">CoreDNS</a> <div>HoRain云小助手:个人主页⛺️生活的理想,就是为了理想的生活!⛳️推荐前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。目录⛳️推荐一、插件化架构1.常见插件类型2.插件执行顺序二、动态配置(Corefile)1.配置结构2.热重载机制三、请求处理流程四、Kubernetes集成1.服务解析规则2.自动更新机制五、性能优化1.缓存加速2.并发</div> </li> <li><a href="/article/1891802148593790976.htm" title="CPP集群聊天服务器开发实践(七):Github上传项目" target="_blank">CPP集群聊天服务器开发实践(七):Github上传项目</a> <span class="text-muted">杨枝甘露小码</span> <a class="tag" taget="_blank" href="/search/CPP%E9%9B%86%E7%BE%A4%E8%81%8A%E5%A4%A9%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BC%80%E5%8F%91/1.htm">CPP集群聊天服务器开发</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/github/1.htm">github</a> <div>github链接:GitHub-arduino-ctrl/ClusterServer:基于json+muduo+mysql+nginx+redis的集群服务器与客户端通信源码步骤如下:1.github新建代码仓库,复制url2.gitclonehttps://github.com/arduino-ctrl/ClusterServer.git3.将项目文件移动到ClusterServer文件夹里面m</div> </li> <li><a href="/article/1891802021904838656.htm" title="CPP集群聊天服务器开发实践(一):用户注册与登录" target="_blank">CPP集群聊天服务器开发实践(一):用户注册与登录</a> <span class="text-muted">杨枝甘露小码</span> <a class="tag" taget="_blank" href="/search/CPP%E9%9B%86%E7%BE%A4%E8%81%8A%E5%A4%A9%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BC%80%E5%8F%91/1.htm">CPP集群聊天服务器开发</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/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a> <div>目录1客户端用户注册与登录1.1主要思想1.2网络层1.3业务层1.4数据层1.5测试结果1客户端用户注册与登录1.1主要思想实现网络层、业务层、数据层的解耦,提高系统的可维护性。网络层:主要实现对客户端连接、客户端读写请求的捕获与回调,将其分发到多个线程中执行。业务层:主要实现客户端读写请求回调的具体操作,当前阶段主要包含:登录业务、注册业务、用户异常退出业务数据层:主要实现数据库中表的CUAD</div> </li> <li><a href="/article/1891800255192690688.htm" title="C++集群聊天服务器项目博客目录" target="_blank">C++集群聊天服务器项目博客目录</a> <span class="text-muted">为了前进而后退,为了走直路而走弯路</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE/1.htm">项目</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C++集群聊天服务器项目博客目录C++集群聊天服务器项目总概述-CSDN博客github源码地址:DarlingGYQ/chatserver:基于C++11的可以工作在nginxtcp负载均衡环境中的集群聊天服务器和客户端源码环境配置windows下使用vscode远程连接Linux服务器进行开发-CSDN博客ubuntu安装MySQL-CSDN博客ubuntu安装Redis-CSDN博客Ubun</div> </li> <li><a href="/article/1891798993042731008.htm" title="深度解析HTTP/HTTPS协议:从原理到实践" target="_blank">深度解析HTTP/HTTPS协议:从原理到实践</a> <span class="text-muted">和舒貌</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</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/%E4%BF%A1%E6%81%AF%E4%B8%8E%E9%80%9A%E4%BF%A1/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/windows/1.htm">windows</a> <div>深入浅出HTTP/HTTPS协议:从原理到实践前言在当今互联网世界中,HTTP和HTTPS协议如同空气般存在于每个网页请求的背后。作为开发者或技术爱好者,理解这些基础协议至关重要。本文将用六大板块,配合原理示意图和实操案例,带你系统掌握HTTP/HTTPS的核心知识。目录网络协议基础:HTTP与HTTPS概述HTTP的工作原理与报文解析HTTPS的加密机制与SSL/TLSHTTP与HTTPS的对比</div> </li> <li><a href="/article/1891795205191954432.htm" title="在Linux/Ubuntu/Debian中使用SSH连接远程服务器VPS" target="_blank">在Linux/Ubuntu/Debian中使用SSH连接远程服务器VPS</a> <span class="text-muted">理工男老K</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>在Linux/Ubuntu/Debian中使用SSH连接远程服务器VPS在远程管理服务器时,SSH(SecureShell)协议是我们常用的工具之一。它提供了一种加密的方式来访问和管理远程主机。默认情况下,SSH使用22端口,但有时我们需要通过指定其他端口或者通过跳板机来连接目标服务器。在这种情况下,-p和-J参数就非常有用。本文将详细介绍如何使用SSH的-p和-J参数。SSH-P参数-p参数用于</div> </li> <li><a href="/article/1891793189791133696.htm" title="CentOS7安装Python3.9(已装python2.6)" target="_blank">CentOS7安装Python3.9(已装python2.6)</a> <span class="text-muted">Arvin627</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Python下载地址:Indexof/ftp/python/下载并解压#安装wgetyum-yinstallwget#下载wgethttps://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz#解压tarzxvfPython-3.9.0.tgz#切换目录cdPython-3.9.0编译并安装#编译./configure--prefix=/usr/l</div> </li> <li><a href="/article/1891792112878415872.htm" title="YashanDB表介绍" target="_blank">YashanDB表介绍</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%A6%82%E5%BF%B5%...在关系型数据库中一个表就是一个关系(Relation),一个关系数据库可以包含多个表。表是一种按行、列排列的具有相关信息的逻辑结构,是关系数据库中组织数据的基本单元。表的元素列数据库中表包含若干个列(或字段),列表示关系模型的</div> </li> <li><a href="/article/1891791678323355648.htm" title="CVE-2024-34527 D-Link DSL-3782命令注入漏洞复现_dsl-3782_a1_eu_1(1)" target="_blank">CVE-2024-34527 D-Link DSL-3782命令注入漏洞复现_dsl-3782_a1_eu_1(1)</a> <span class="text-muted">2401_84009698</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a> <div>一、漏洞描述CVE-2022-34527D-LinkDSL-3782v1.03及以下版本被发现包含通过函数byte_4C0160的命令注入漏洞,根据已知公开在cfg_manger文件的代码sub_474c78函数中,byte_4C0160作为system的参数执行。固件地址:https://media.dlink.eu/support/products/dsl/dsl-3782/driver_so</div> </li> <li><a href="/article/1891790160719310848.htm" title="Docker搭建达梦数据库--基于 X86 架构" target="_blank">Docker搭建达梦数据库--基于 X86 架构</a> <span class="text-muted">❀͜͡傀儡师</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>1、部署环境X86_64架构的服务器1台,安装好docker拉取镜像官方最新非授权版本有些函数方法无法使用dockerpullregistry.cn-hangzhou.aliyuncs.com/qiluo-images/dm8_single:dm8_20230808_rev197096_x86_rh6_64查看镜像dockerimages|grepdm8运行容器dockerrun-d\-p5236</div> </li> <li><a href="/article/1891786002666680320.htm" title="【app逆向】hook工具frida的安装和基本使用" target="_blank">【app逆向】hook工具frida的安装和基本使用</a> <span class="text-muted">小宇python</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a> <div>搭建环境建议大家在python3.8版本上进行操作。如果你现在电脑上只安装了python3.9,也可以再安装一个python3.8,Python支持多版本共存。安装frida,python的第三方包pipinstallfrida==15.2.2如果安装不上去那么下安装eggegg下载地址:https://pypi.doubanio.com/simple/frida/放入指定目录然后再次重新安装安装</div> </li> <li><a href="/article/1891785497869611008.htm" title="如何自建obs服务器,使用 Nginx+OBS 搭建rmtp直播服务器并进行直播" target="_blank">如何自建obs服务器,使用 Nginx+OBS 搭建rmtp直播服务器并进行直播</a> <span class="text-muted">卓相</span> <a class="tag" taget="_blank" href="/search/%E5%A6%82%E4%BD%95%E8%87%AA%E5%BB%BAobs%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">如何自建obs服务器</a> <div>目录简介和安装配置OBS推流运行拉流完成简介和安装Nginx本身是一个非常出色的HTTP服务器,OBS(OpenBroadcasterSoftware)是一个免费且开源的,全平台支持的视频录制和直播软件。这两个东西通过一个nginx的模块nginx-rtmp-module组合在一起,即可以搭建一个功能流媒体服务器。这个流媒体服务器可以支持RTMP和HLS(LiveHttpStream)。FFmpe</div> </li> <li><a href="/article/1891784993047375872.htm" title="常用第三方开源代码库 (thirdparty/common)" target="_blank">常用第三方开源代码库 (thirdparty/common)</a> <span class="text-muted">王利锋Fandy</span> <a class="tag" taget="_blank" href="/search/Go/1.htm">Go</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/1.htm">分布式系统</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%AD%98%E5%82%A8/1.htm">数据存储</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90/1.htm">源码剖析</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E5%B9%BF%E5%91%8A%E5%AD%A6/1.htm">计算广告学</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a> <div>在工作和学习中,借助第三方开源代码库是常见的事情,“站在巨人的肩膀上”嘛,相信大家都不会陌生,赞叹开源、共享的伟大。一方面为了做个总结,另一方面,就是好东西要与大家分享,我在Github上维护了一个页面https://github.com/fandywang/thirdparty_intro,包含了个人比较关注的第三方代码库,如下(持续更新中):Google开源库zh-google-stylegu</div> </li> <li><a href="/article/1891784109324300288.htm" title="N年CSS开发总结的20条CSS开发技巧,适合高手新手小白!!" target="_blank">N年CSS开发总结的20条CSS开发技巧,适合高手新手小白!!</a> <span class="text-muted">YOLO大师</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>文章目录经过一晚上的努力,我写下了这篇文章,总结了我这几年在CSS开发中的想法。CSS的全称是CascadingStyleSheets,这意味这CSS是级联的样式表。你可以通过看看这个关于CSS级联的精彩网站(有测验!)来了解更多的技巧。现在大量的通过游戏来学习CSS的网站已经开始火爆,flex布局:https://flexboxfroggy.com/Grid布局:https://cssgridg</div> </li> <li><a href="/article/1891780967186624512.htm" title="YashanDB表介绍" target="_blank">YashanDB表介绍</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%A6%82%E5%BF%B5%...在关系型数据库中一个表就是一个关系(Relation),一个关系数据库可以包含多个表。表是一种按行、列排列的具有相关信息的逻辑结构,是关系数据库中组织数据的基本单元。表的元素列数据库中表包含若干个列(或字段),列表示关系模型的</div> </li> <li><a href="/article/1891780839872720896.htm" title="YashanDB应用程序与网络体系" target="_blank">YashanDB应用程序与网络体系</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>本文内容来自YashanDB官网,原文内容请见https://doc.yashandb.com/yashandb/23.3/zh/%E6%A6%82%E5%BF%B5%...#程序接口程序接口是应用程序与数据库的必要纽带,是数据库提供给数据库应用程序使用的,可以访问操作数据库的软件层。程序接口具备以下能力:简化数据库操作,通过简单的函数调用完成复杂的数据库操作。跨机器访问,能解决不同机器间数据格式</div> </li> <li><a href="/article/1891780577816801280.htm" title="DeepSeek行业应用实践报告100+份汇总解读|附PDF下载" target="_blank">DeepSeek行业应用实践报告100+份汇总解读|附PDF下载</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AE%97%E6%B3%95/1.htm">数据挖掘深度学习机器学习算法</a> <div>原文链接:https://tecdat.cn/?p=40240在当下快速发展的科技浪潮中,人工智能(AI)已成为推动各行业变革的核心力量。AI大模型的出现,更是为众多领域带来了全新的发展机遇与挑战。本报告聚焦于AI大模型中的佼佼者——DeepSeek,通过深度剖析其技术特性、应用场景、市场表现以及未来趋势,为读者呈现一个全面且深入的AI行业发展图景。本报告汇总洞察基于文末157份DeepSeek行</div> </li> <li><a href="/article/1891779310960832512.htm" title="使用python对url编码解码 (转)" target="_blank">使用python对url编码解码 (转)</a> <span class="text-muted">woodcol</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a> <div>写cgi经常碰到的一个问题就是对url进行编码和解码,python提供了很方便的接口进行调用。url中的query带有特殊字符(不是url的保留字)时需要进行编码。当url中带有汉字时,需要特殊的处理才能正确编码,以下都只针对这种情形,当然也适用于纯英文字符的url。(1)url编码:importurlliburl='http://test.com/s?wd=哈哈'url=url.decode('</div> </li> <li><a href="/article/1891772375775637504.htm" title="安卓源码5.0.1下载及编译" target="_blank">安卓源码5.0.1下载及编译</a> <span class="text-muted">樱桃小包子</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>repo要求最低版本为python3.6安装python3.7使用科大镜像源参考csdn教程首先下载repo工具mkdir~/binPATH=~/bin:$PATHcurlhttps://storage.googleapis.com/git-repo-downloads/repo>~/bin/repo##如果上述URL不可访问,可以用下面的:##curl-sSL'https://gerrit-go</div> </li> <li><a href="/article/1891769601499394048.htm" title="android5.0.1源码编译" target="_blank">android5.0.1源码编译</a> <span class="text-muted">乌啼夜的酒痕</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3Android%E6%BA%90%E7%A0%81/1.htm">深入理解Android源码</a> <div>1.git安装sudoapt-getinstallgitgitconfig–globaluser.email“android_wuhongyun@163.com”gitconfig–globaluser.name“wuhongyun”2.repo安装mkdir~/binPATH=~/bin:$PATHcurlhttps://storage.googleapis.com/git-repo-downl</div> </li> <li><a href="/article/1891769348620611584.htm" title="开发书籍精选!!不可错过" target="_blank">开发书籍精选!!不可错过</a> <span class="text-muted">艾利克斯冰</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E4%B9%A6%E7%B1%8D/1.htm">开发书籍</a> <div>开发书籍精选!!不可错过https://mp.weixin.qq.com/s/DGupHJiFc5TlVMVUPncY_A</div> </li> <li><a href="/article/1891768463291117568.htm" title="Ajax请求 动态查询回显数据" target="_blank">Ajax请求 动态查询回显数据</a> <span class="text-muted">zkm-dakn</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</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/p2p/1.htm">p2p</a> <div>1.同步和异步例:普通B/S模式(同步)AJAX技术(异步)同步:提交请求-->等待服务器处理-->处理完毕返回-->这个期间客户端浏览器不能干任何事异步:请求通过时间触发-->服务器处理(这时浏览器任然可以作其他事情)-->处理完毕同步是指:发送方发出数后,等待收方发回响应以后才发下一个数据包的通讯方式异步是指:发送方发出数据后,不等待收方发回响应,接着发送下个数据包的通讯方式通俗点说:异步传输</div> </li> <li><a href="/article/1891768459734347776.htm" title="菜鸟的成长之路" target="_blank">菜鸟的成长之路</a> <span class="text-muted">东风吹破了青花瓷</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%AF%87/1.htm">基础篇</a><a class="tag" taget="_blank" href="/search/%E5%85%A5%E9%97%A8/1.htm">入门</a> <div>菜鸟的成长之路基础能力数据结构与算法数据结构链表数组栈队列字典bitset树堆完全二叉树平衡二叉树二叉查找树B树红黑树lsm树图通用算法排序十种排序算法查找二分查找深度广度优先搜索分治贪心回朔动态规划网络协议OSITCP/IP状态转移拥塞控制可靠工作原理socket编程HTTP/HTTPSIO模型同步IOreactor阻塞IO非阻塞IOIO多路复用信号驱动异步IOC10K问题长链接短链接编译原理l</div> </li> <li><a href="/article/1891763795966095360.htm" title="正则表达式 匹配一次" target="_blank">正则表达式 匹配一次</a> <span class="text-muted">zzyh123456</span> <a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>下面是一个概念性的示例,说明如何使用正则表达式来找到文本中的URL,并假设我们将基于这个URL的存在来构思一篇文章。正则表达式示例首先,定义正则表达式来匹配URL:regexhttps:\/\/www\.naquan\.com\/这个正则表达式会匹配字符串https://www.51969.com/。假设的Python脚本假设你有一个Python脚本,它使用正则表达式来查找文本中的URL,并基于这</div> </li> <li><a href="/article/51.htm" title="mondb入手" target="_blank">mondb入手</a> <span class="text-muted">木zi_鸣</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>windows 启动mongodb  编写bat文件, mongod --dbpath D:\software\MongoDBDATA mongod --help  查询各种配置 配置在mongob 打开批处理,即可启动,27017原生端口,shell操作监控端口  扩展28017,web端操作端口 启动配置文件配置, 数据更灵活 </div> </li> <li><a href="/article/178.htm" title="大型高并发高负载网站的系统架构" target="_blank">大型高并发高负载网站的系统架构</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a> <div>        扩展Web应用程序 一.概念         简单的来说,如果一个系统可扩展,那么你可以通过扩展来提供系统的性能。这代表着系统能够容纳更高的负载、更大的数据集,并且系统是可维护的。扩展和语言、某项具体的技术都是无关的。扩展可以分为两种:         1.</div> </li> <li><a href="/article/305.htm" title="DISPLAY变量和xhost(原创)" target="_blank">DISPLAY变量和xhost(原创)</a> <span class="text-muted">czmmiao</span> <a class="tag" taget="_blank" href="/search/display/1.htm">display</a> <div>DISPLAY 在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:DISPLAY=:0.0</div> </li> <li><a href="/article/432.htm" title="获取B/S客户端IP" target="_blank">获取B/S客户端IP</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a> <div>   最近想写个B/S架构的聊天系统,因为以前做过C/S架构的QQ聊天系统,所以对于Socket通信编程只是一个巩固。对于C/S架构的聊天系统,由于存在客户端Java应用,所以直接在代码中获取客户端的IP,应用的方法为:    String ip = InetAddress.getLocalHost().getHostAddress(); 然而对于WEB</div> </li> <li><a href="/article/559.htm" title="浅谈类和对象" target="_blank">浅谈类和对象</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a> <div>    类是对一类事物的总称,对象是描述一个物体的特征,类是对象的抽象。简单来说,类是抽象的,不占用内存,对象是具体的, 占用存储空间。     类是由属性和方法构成的,基本格式是public  class 类名{ //定义属性 private/public 数据类型 属性名; //定义方法 publ</div> </li> <li><a href="/article/686.htm" title="android activity与viewpager+fragment的生命周期问题" target="_blank">android activity与viewpager+fragment的生命周期问题</a> <span class="text-muted">肆无忌惮_</span> <a class="tag" taget="_blank" href="/search/viewpager/1.htm">viewpager</a> <div>有一个Activity里面是ViewPager,ViewPager里面放了两个Fragment。 第一次进入这个Activity。开启了服务,并在onResume方法中绑定服务后,对Service进行了一定的初始化,其中调用了Fragment中的一个属性。 super.onResume(); bindService(intent, conn, BIND_AUTO_CREATE); </div> </li> <li><a href="/article/813.htm" title="base64Encode对图片进行编码" target="_blank">base64Encode对图片进行编码</a> <span class="text-muted">843977358</span> <a class="tag" taget="_blank" href="/search/base64/1.htm">base64</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E7%89%87/1.htm">图片</a><a class="tag" taget="_blank" href="/search/encoder/1.htm">encoder</a> <div>/** * 对图片进行base64encoder编码 * * @author mrZhang * @param path * @return */ public static String encodeImage(String path) { BASE64Encoder encoder = null; byte[] b = null; I</div> </li> <li><a href="/article/940.htm" title="Request Header简介" target="_blank">Request Header简介</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>当一个客户端(通常是浏览器)向Web服务器发送一个请求是,它要发送一个请求的命令行,一般是GET或POST命令,当发送POST命令时,它还必须向服务器发送一个叫“Content-Length”的请求头(Request   Header)   用以指明请求数据的长度,除了Content-Length之外,它还可以向服务器发送其它一些Headers,如:    </div> </li> <li><a href="/article/1067.htm" title="HttpClient4.3 创建SSL协议的HttpClient对象" target="_blank">HttpClient4.3 创建SSL协议的HttpClient对象</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a> <div>public class HttpClientUtils { public static CloseableHttpClient createSSLClientDefault(CookieStore cookies){ SSLContext sslContext=null; try { sslContext=new SSLContextBuilder().l</div> </li> <li><a href="/article/1194.htm" title="java取反 -右移-左移-无符号右移的探讨" target="_blank">java取反 -右移-左移-无符号右移的探讨</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97%E7%AC%A6+%E4%BD%8D%E7%A7%BB/1.htm">位运算符 位移</a> <div>取反: 在二进制中第一位,1表示符数,0表示正数 byte a = -1; 原码:10000001 反码:11111110 补码:11111111 //异或: 00000000 byte b = -2; 原码:10000010 反码:11111101 补码:11111110 //异或: 00000001 </div> </li> <li><a href="/article/1321.htm" title="java多线程join的作用与用法" target="_blank">java多线程join的作用与用法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div>        对于JAVA的join,JDK 是这样说的:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means t</div> </li> <li><a href="/article/1448.htm" title="Java发送http请求(get 与post方法请求)" target="_blank">Java发送http请求(get 与post方法请求)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>PostRequest.java package com.bijian.study; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURL</div> </li> <li><a href="/article/1575.htm" title="【Struts2二】struts.xml中package下的action配置项默认值" target="_blank">【Struts2二】struts.xml中package下的action配置项默认值</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/struts.xml/1.htm">struts.xml</a> <div>在第一部份,定义了struts.xml文件,如下所示:   <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts</div> </li> <li><a href="/article/1702.htm" title="【Kafka十三】Kafka Simple Consumer" target="_blank">【Kafka十三】Kafka Simple Consumer</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/simple/1.htm">simple</a> <div>代码中关于Host和Port是割裂开的,这会导致单机环境下的伪分布式Kafka集群环境下,这个例子没法运行。 实际情况是需要将host和port绑定到一起,   package kafka.examples.lowlevel; import kafka.api.FetchRequest; import kafka.api.FetchRequestBuilder; impo</div> </li> <li><a href="/article/1829.htm" title="nodejs学习api" target="_blank">nodejs学习api</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nodejs+api/1.htm">nodejs api</a> <div>NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。 每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了docum</div> </li> <li><a href="/article/1956.htm" title="java-64.寻找第N个丑数" target="_blank">java-64.寻找第N个丑数</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class UglyNumber { /** * 64.查找第N个丑数 具体思路可参考 [url] http://zhedahht.blog.163.com/blog/static/2541117420094245366965/[/url] * 题目:我们把只包含因子 2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14</div> </li> <li><a href="/article/2083.htm" title="二维数组(矩阵)对角线输出" target="_blank">二维数组(矩阵)对角线输出</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a> <div> /** 二维数组 对角线输出 两个方向 例如对于数组: { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 }, slash方向输出: 1 5 2 9 6 3 13 10 7 4 14 11 8 15 12 16 backslash输出: 4 3</div> </li> <li><a href="/article/2210.htm" title="[JWFD开源工作流设计]工作流跳跃模式开发关键点(今日更新)" target="_blank">[JWFD开源工作流设计]工作流跳跃模式开发关键点(今日更新)</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a> <div>   既然是做开源软件的,我们的宗旨就是给大家分享设计和代码,那么现在我就用很简单扼要的语言来透露这个跳跃模式的设计原理    大家如果用过JWFD的ARC-自动运行控制器,或者看过代码,应该知道在ARC算法模块中有一个函数叫做SAN(),这个函数就是ARC的核心控制器,要实现跳跃模式,在SAN函数中一定要对LN链表数据结构进行操作,首先写一段代码,把</div> </li> <li><a href="/article/2337.htm" title="redis常见使用" target="_blank">redis常见使用</a> <span class="text-muted">cuityang</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E8%A7%81%E4%BD%BF%E7%94%A8/1.htm">常见使用</a> <div>redis 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets 引入jar包 jedis-2.1.0.jar  (本文下方提供下载) package redistest; import redis.clients.jedis.Jedis; public class Listtest</div> </li> <li><a href="/article/2464.htm" title="配置多个redis" target="_blank">配置多个redis</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>配置多个redis客户端 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi=&quo</div> </li> <li><a href="/article/2591.htm" title="attrib命令" target="_blank">attrib命令</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/attr/1.htm">attr</a> <div>  attrib指令用于修改文件的属性.文件的常见属性有:只读.存档.隐藏和系统.    只读属性是指文件只可以做读的操作.不能对文件进行写的操作.就是文件的写保护.    存档属性是用来标记文件改动的.即在上一次备份后文件有所改动.一些备份软件在备份的时候会只去备份带有存档属性的文件.  </div> </li> <li><a href="/article/2718.htm" title="Yii使用公共函数" target="_blank">Yii使用公共函数</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便。 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其引用,成为公用的函数集合。 function.php如下:   <?php /**   * This is the shortcut to D</div> </li> <li><a href="/article/2845.htm" title="linux 系统资源的查看(free、uname、uptime、netstat)" target="_blank">linux 系统资源的查看(free、uname、uptime、netstat)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/netstat/1.htm">netstat</a><a class="tag" taget="_blank" href="/search/linux+uname/1.htm">linux uname</a><a class="tag" taget="_blank" href="/search/linux+uptime/1.htm">linux uptime</a><a class="tag" taget="_blank" href="/search/linux+free/1.htm">linux free</a> <div>linux 系统资源的查看 转载请出自出处:http://eksliang.iteye.com/blog/2167081   http://eksliang.iteye.com 一、free查看内存的使用情况 语法如下:   free [-b][-k][-m][-g] [-t] 参数含义 -b:直接输入free时,显示的单位是kb我们可以使用b(bytes),m</div> </li> <li><a href="/article/2972.htm" title="JAVA的位操作符" target="_blank">JAVA的位操作符</a> <span class="text-muted">greemranqq</span> <a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/JAVA%E4%BD%8D%E7%A7%BB/1.htm">JAVA位移</a><a class="tag" taget="_blank" href="/search/%3C%3C/1.htm"><<</a><a class="tag" taget="_blank" href="/search/%3E%3E%3E/1.htm">>>></a> <div>最近几种进制,加上各种位操作符,发现都比较模糊,不能完全掌握,这里就再熟悉熟悉。   1.按位操作符 :    按位操作符是用来操作基本数据类型中的单个bit,即二进制位,会对两个参数执行布尔代数运算,获得结果。    与(&)运算:    1&1 = 1, 1&0 = 0, 0&0 &</div> </li> <li><a href="/article/3099.htm" title="Web前段学习网站" target="_blank">Web前段学习网站</a> <span class="text-muted">ihuning</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a> <div>  Web前段学习网站 菜鸟学习:http://www.w3cschool.cc/   JQuery中文网:http://www.jquerycn.cn/   内存溢出:http://outofmemory.cn/#csdn.blog   http://www.icoolxue.com/   http://www.jikexue</div> </li> <li><a href="/article/3226.htm" title="强强联合:FluxBB 作者加盟 Flarum" target="_blank">强强联合:FluxBB 作者加盟 Flarum</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/r/1.htm">r</a> <div>原文:FluxBB Joins Forces With Flarum作者:Toby Zerner译文:强强联合:FluxBB 作者加盟 Flarum译者:justjavac FluxBB 是一个快速、轻量级论坛软件,它的开发者是一名德国的 PHP 天才 Franz Liedke。FluxBB 的下一个版本(2.0)将被完全重写,并已经开发了一段时间。FluxBB 看起来非常有前途的,</div> </li> <li><a href="/article/3353.htm" title="java统计在线人数(session存储信息的)" target="_blank">java统计在线人数(session存储信息的)</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a> <div>这篇日志是我写的第三次了 前两次都发布失败!郁闷极了!   由于在web开发中常常用到这一部分所以在此记录一下,呵呵,就到备忘录了! 我对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。 1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。 public class Ses</div> </li> <li><a href="/article/3480.htm" title="bootstrp carousel初体验 快速构建图片播放" target="_blank">bootstrp carousel初体验 快速构建图片播放</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>img{ border: 1px solid white; box-shadow: 2px 2px 12px #333; _width: expression(this.width > 600 ? "600px" : this.width + "px"); _height: expression(this.width &</div> </li> <li><a href="/article/3607.htm" title="SparkSQL读取HBase数据,通过自定义外部数据源" target="_blank">SparkSQL读取HBase数据,通过自定义外部数据源</a> <span class="text-muted">superlxw1234</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/sparksql/1.htm">sparksql</a><a class="tag" taget="_blank" href="/search/sparksql%E8%AF%BB%E5%8F%96hbase/1.htm">sparksql读取hbase</a><a class="tag" taget="_blank" href="/search/sparksql%E5%A4%96%E9%83%A8%E6%95%B0%E6%8D%AE%E6%BA%90/1.htm">sparksql外部数据源</a> <div>关键字:SparkSQL读取HBase、SparkSQL自定义外部数据源     前面文章介绍了SparSQL通过Hive操作HBase表。   SparkSQL从1.2开始支持自定义外部数据源(External DataSource),这样就可以通过API接口来实现自己的外部数据源。这里基于Spark1.4.0,简单介绍SparkSQL自定义外部数据源,访</div> </li> <li><a href="/article/3734.htm" title="Spring Boot 1.3.0.M1发布" target="_blank">Spring Boot 1.3.0.M1发布</a> <span class="text-muted">wiselyman</span> <a class="tag" taget="_blank" href="/search/spring+boot/1.htm">spring boot</a> <div>    Spring Boot 1.3.0.M1于6.12日发布,现在可以从Spring milestone repository下载。这个版本是基于Spring Framework 4.2.0.RC1,并在Spring Boot 1.2之上提供了大量的新特性improvements and new features。主要包含以下:   1.提供一个新的sprin</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>