Http请求

HTTP简介

HTTP协议,全称为Hyper Text Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。

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

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

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

请求头(Request Header)
请求正文

下面是一个HTTP请求的数据:

POST /index.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://localhost/
Content-Length:25
Content-Type:application/x-www-form-urlencoded
 
username=aa&password=1234

HTTP协议中最主要的是HTTP/1.0HTTP/1.1,其中HTTP/1.0是第一个得到广泛使用的版本,而1.1逐渐成为当前使用的主流。

HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:


Client-Server.jpg
1、HTTP请求行:请求方法URI协议/版本

HTTP1.0定义了三种请求方法: GET, POSTHEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACECONNECT 方法。

HTTP1.1 中的请求方式:

序号 方法 作用
1 GET 请求获取由 Request-URI 所标识的资源
2 POST 请求服务器接收在请求中封装的实体,并将其作为由 Request-Line中的 Request-URI 所标识的资源的一部分
3 HEAD 请求获取由 Request-URI 所标识的资源的响应消息报头
4 PUT 请求服务器存储一个资源,并用 Request-URI 作为其标识符
5 DELETE 请求服务器删除由 Request-URI 所标识的资源
6 TRACE 请求服务器回送到的请求信息,主要用于测试或诊断
7 CONNECT 保留将来使用
8 OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
2、请求头

每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

HTTP最常见的请求头如下:

Transport 头域
Connection:
作用:表示是否需要持久连接。

例如: Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的 网页,会继续使用这一条已经建立的连接

例如: Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。

HTTP响应格式

在接收和解释请求消息后,服务器会返回一个 HTTP 响应消息。与 HTTP 请求类似,HTTP 响应也是由三个部分组成,分别是:状态行、消息报头和响应正文。如:

HTTP/1.1 200 OK Date: Sun, 17 Mar 2013 08:12:54 GMT Server: Apache/2.2.8 (Win32) PHP/5.2.5 X-Powered-By: PHP/5.2.5 Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Length: 4393 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=utf-8

HTTP响应示例<title> </head> <body> Hello HTTP! </body> </html></p><p> </p> </code></pre> <h5>1、状态行</h5> <p>状态行由协议版本、数字形式的状态代码,及相应的状态描述组成,各元素之间以空格分隔,结尾时回车换行符,格式如下:</p> <p>HTTP-Version Status-Code Reason-Phrase CRLF</p> <p>HTTP-Version 表示服务器 HTTP 协议的版本,Status-Code 表示服务器发回的响应代码,Reason-Phrase 表示状态代码的文本描述,CRLF 表示回车换行。例如:</p> <p>HTTP/1.1 200 OK (CRLF)</p> <p><strong>状态代码与状态描述</strong></p> <p>状态代码由 3 位数字组成, 表示请求是否被理解或被满足,状态描述给出了关于状态码的简短的文字描述。状态码的第一个数字定义了响应类别,后面两位数字没有具体分类。第一个数字有 5 种取值,如下所示。</p> <p>1xx:指示信息——表示请求已经接受,继续处理<br> 2xx:成功——表示请求已经被成功接收、理解、接受。<br> 3xx:重定向——要完成请求必须进行更进一步的操作<br> 4xx:客户端错误——请求有语法错误或请求无法实现<br> 5xx:服务器端错误——服务器未能实现合法的请求。</p> <p>常见状态代码、状态描述、说明:<br> 200 OK //客户端请求成功<br> 400 Bad Request //客户端请求有语法错误,不能被服务器所理解<br> 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用<br> 403 Forbidden //服务器收到请求,但是拒绝提供服务<br> 404 Not Found //请求资源不存在,eg:输入了错误的URL<br> 500 Internal Server Error //服务器发生不可预期的错误<br> 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常</p> <h5>2、响应正文</h5> <p>响应正文就是服务器返回的资源的内容,响应头和正文之间也必须用空行分隔。如:</p> <pre><code><html> <head> <title>HTTP响应示例<title> </head> <body> Hello HTTP! </body> </html> </code></pre> <h5>3 、响应头信息</h5> <p>HTTP最常见的响应头如下所示:<br> Cache头域<br> <strong>Date:</strong></p> <p>作用:生成消息的具体时间和日期,即当前的GMT时间。<br> 例如: Date: Sun, 17 Mar 2013 08:12:54 GMT</p> <h3>浏览器缓存</h3> <p>浏览器缓存:包括页面html缓存和图片js,css等资源的缓存。如下图,浏览器缓存是基于把页面信息保存到用户本地电脑硬盘里。</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 449px; max-height: 277px;"> <div class="image-view"> </div> </div> <div class="image-caption"> 浏览器缓存 </div> </div> <br> <p>缓存的优点:<br> 1)服务器响应更快:因为请求从缓存服务器(离客户端更近)而不是源服务器被相应,这个过程耗时更少,让服务器看上去响应更快。<br> 2)减少网络带宽消耗:当副本被重用时会减低客户端的带宽消耗;客户可以节省带宽费用,控制带宽的需求的增长并更易于管理。</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1670403781348646912"></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/1770430724999020544.htm" title="[学习记录]esp32通过wifi进行http请求获得天气信息" target="_blank">[学习记录]esp32通过wifi进行http请求获得天气信息</a> <span class="text-muted">ZYbppp</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</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协议解释本次使用的开发板为和宙esp32c3,使用的IDE为vscode+espidf程序整体流程:以下为程序详解WiFi连接首先使能nvs,将等下使用的WiFi账号及密码储存到nvs上NVS介绍:官方介绍比较繁杂。通俗来说,NVS就是在flash上分配的一块内存空间,提供给用户保存电不丢失的数据。进入主题,我们需要将esp32连接WiFi,此时使用为WIFISTATION模式,下面给出官</div> </li> <li><a href="/article/1769950899007979520.htm" title="百度面经!大厂的难度!快来看看你会几道!" target="_blank">百度面经!大厂的难度!快来看看你会几道!</a> <span class="text-muted">准入职的java螺丝钉一枚</span> <a class="tag" taget="_blank" href="/search/2024%E9%9D%A2%E8%AF%95%E5%AE%9D%E5%85%B8/1.htm">2024面试宝典</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>1.八股有几种网络io模型?异步网络模型在什么场景下你了解有应用过?(回答了线程相关的场景)除了用线程完成,还有什么操作可以完成异步操作?同步阻塞和同步非阻塞在java层面怎么实现?(说前面网络io模型答得挺顺畅,具体实现细节还需要提升一下)描述一下一次完整的http请求知道的长连接有几种实现方式?一个http请求包含哪几部分内容?请求头里面的信息都有哪些?http的状态码有哪些?401和403的</div> </li> <li><a href="/article/1769783486312415232.htm" title="vue的axios教程" target="_blank">vue的axios教程</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/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/okhttp/1.htm">okhttp</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>ajax技术:不重新加载整个页面的情况下,异步地与服务器进行通信,并更新页面的部分内容Ajax(AsynchronousJavaScriptandXML)是一种使用JavaScript向服务器发送和接收数据的技术。Ajax的工作原理基于以下关键组件:XMLHttpRequest对象:XMLHttpRequest是浏览器提供的API,用于创建HTTP请求,并与服务器进行通信。通过XMLHttpReq</div> </li> <li><a href="/article/1769483899685109760.htm" title="扫码登录的实现方式" target="_blank">扫码登录的实现方式</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%89%8D%E7%AB%AF/1.htm">前端</a> <div>扫码登录过程:前端生成二维码,在登录页面等待用户扫码,用户扫码后判断扫码结果做下一步操作(成功:跳转首页,失败:提示用户)。为了即时知晓用户扫码结果,有三种方式来查询结果1.短轮询实现:这种方式非常简单,写了一个定时器每间隔n秒向服务器发送http请求来查询用户扫码情况。弊端:扫码后用户要等n秒才会页面感知,多久请求一次合适呢?频率太高会导致服务器压力大,如果放低页面感知的及时性就会降低。适合对实</div> </li> <li><a href="/article/1769300122648248320.htm" title="请求头content-type的类型有什么?" target="_blank">请求头content-type的类型有什么?</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/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>"Content-Type"是HTTP请求头中的一个字段,用于指示发送给接收方的实体正文的媒体类型。常见的"Content-Type"类型包括但不限于以下几种:application/json:用于指示请求或响应中的实体正文是JSON格式的数据。application/x-www-form-urlencoded:用于指示请求中的实体正文是经过URL编码的表单数据,在HTML表单中常用的形式。mul</div> </li> <li><a href="/article/1768804800415203328.htm" title="SpringMVC 的运行流程" target="_blank">SpringMVC 的运行流程</a> <span class="text-muted">Itmastergo</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>SpringMVC是一个基于MVC设计模式的Web框架,它提供了一种优雅的方式来构建Web应用程序,将应用程序的不同部分分离开来,以便更好地管理和维护。了解SpringMVC的运行流程对于理解它的工作原理以及在实际项目中的应用非常重要。1.请求的到达客户端(如浏览器)发送HTTP请求到服务器。请求到达服务器后,SpringMVC中的DispatcherServlet接收到请求。Dispatcher</div> </li> <li><a href="/article/1768149344847986688.htm" title="HarmonyOS ArkTS HTTP 请求简单封装(二十二)" target="_blank">HarmonyOS ArkTS HTTP 请求简单封装(二十二)</a> <span class="text-muted">志尊宝</span> <a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a> <div>在鸿蒙ArkTs中进行HTTP请求封装可以通过使用http模块来实现。以下是一个简单的示例,演示如何在鸿蒙ArkTs中封装HTTP请求:1、首先,创建一个HttpUtil.ts文件,并引入相关模块:import{HttpMethod,Request,Response,sendRequest}from'@ohos-tool/http';2、编写一个简单的HTTP请求封装函数,例如:exportasy</div> </li> <li><a href="/article/1767933713498308608.htm" title="python爬虫入门" target="_blank">python爬虫入门</a> <span class="text-muted">一点流水~</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、首先需要了解爬虫的原理爬虫就是一个自动化数据采集工作,你只需要告诉它需要采取哪些数据,给它一个url,就可以自动的抓取数据。其背后的基本原理就是爬虫模拟浏览器向目标服务器发送http请求,然后目标服务器返回响应结果,爬虫客户端收到响应并从中提取数据,再进行数据清洗、数据存储工作。二、爬虫的基本流程爬虫的基本流程与访问浏览器类似,就是建立一个http请求,当用户输入一个url之后,点击确认,客户</div> </li> <li><a href="/article/1767733955911548928.htm" title="C#/.Net 多线程下载m3u8视频" target="_blank">C#/.Net 多线程下载m3u8视频</a> <span class="text-muted">weixin_42199478</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/.netcore/1.htm">.netcore</a> <div>C#/.Net多线程下载m3u8视频下载网络文件方法下载m3u8.HttpGet()是我自己封装的HTTP请求方法下载网络文件方法//////下载网络文件//////文件地址///保存路径publicstaticvoidDownloadFile(thisstringurl,stringsavePath){WebClientwc=newWebClient();//从路径中取得文件名称varname=</div> </li> <li><a href="/article/1765946688872210432.htm" title="Superset二次开发之Superset架构理解" target="_blank">Superset二次开发之Superset架构理解</a> <span class="text-muted">aimmon</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/superset/1.htm">superset</a><a class="tag" taget="_blank" href="/search/BI/1.htm">BI</a> <div>技术框架框架作用前端React构建用户界面的JavaScript库ReduxJavaScript应用的状态管理库,管理组件间的状态共享Webpack前端资源打包工具BabelJavaScript编译器D3.js数据可视化的JavaScript库后端Flask轻量级的Pythonweb框架,处理HTTP请求、路由以及其他Web服务功能SQLAlchemySQL工具包和对象关系映射(ORM)工具,处理</div> </li> <li><a href="/article/1765431866971742208.htm" title="爬虫技术抓取网站数据" target="_blank">爬虫技术抓取网站数据</a> <span class="text-muted">Bearjumpingcandy</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>爬虫技术是一种自动化获取网站数据的技术,它可以模拟人类浏览器的行为,访问网页并提取所需的信息。以下是爬虫技术抓取网站数据的一般步骤:发起HTTP请求:爬虫首先会发送HTTP请求到目标网站,获取网页的内容。解析HTML:获取到网页内容后,爬虫会使用HTML解析器解析HTML文档,提取出需要的数据。数据提取:通过使用XPath、CSS选择器或正则表达式等工具,爬虫可以从HTML文档中提取出所需的数据,</div> </li> <li><a href="/article/1764943984179896320.htm" title="golang 实现http请求调用" target="_blank">golang 实现http请求调用</a> <span class="text-muted">杨杨小朋友</span> <a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/xcode/1.htm">xcode</a> <div>packagemainimport("fmt""log""net/http")funcHelloServer(whttp.ResponseWriter,req*http.Request){fmt.Println("InsideHelloServerhandler")//fmt.Fprint()和fmt.Fprintf()都是可以用来写入http.ResponseWriter的函数(他们实现了io.</div> </li> <li><a href="/article/1764430918761668608.htm" title="nginx反向代理原理讲解" target="_blank">nginx反向代理原理讲解</a> <span class="text-muted">sdly_熬夜冠军</span> <a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/1.htm">nginx反向代理</a> <div>一、概述反向代理(ReverseProxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。</div> </li> <li><a href="/article/1764276847517982720.htm" title="http传输为什么是采用TCP传输" target="_blank">http传输为什么是采用TCP传输</a> <span class="text-muted">symsyq</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>HTTP协议通常基于TCP进行传输的主要原因如下:可靠性:TCP是一种可靠的传输协议,它提供了数据完整性和顺序保证。在HTTP中,特别是在涉及到传输重要数据时(比如网页内容、文件下载等),我们需要保证数据的完整性和可靠性,因此选择基于TCP的HTTP可以更好地满足这一需求。连接性:HTTP/1.1中默认采用持久连接(Keep-Alive),这使得在同一个TCP连接上可以发送多个HTTP请求,从而避</div> </li> <li><a href="/article/1764115094884671488.htm" title="SpringMVC 学习(九)之拦截器" target="_blank">SpringMVC 学习(九)之拦截器</a> <span class="text-muted">花落随风轻飘舞</span> <a class="tag" taget="_blank" href="/search/SpringMVC/1.htm">SpringMVC</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><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/springboot/1.htm">springboot</a> <div>目录1拦截器介绍2创建一个拦截器类3配置拦截器1拦截器介绍在SpringMVC中,拦截器(Interceptor)是一种用于拦截HTTP请求并在请求处理之前或之后执行自定义逻辑的组件。拦截器可以用于实现以下功能:权限验证:在请求处理之前进行用户身份验证和授权日志记录:记录请求的相关信息,如请求路径、参数、处理时间等异常处理:捕获并处理请求处理过程中抛出的异常性能监控:统计请求的响应时间、吞吐量等性</div> </li> <li><a href="/article/1764077459550068736.htm" title="负载均衡." target="_blank">负载均衡.</a> <span class="text-muted">暗隐之光</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E9%AB%98%E7%BA%A7%E7%AF%87/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><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>简介:将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。负载均衡的分类:网络通信分类四层负载均衡:基于IP地址和端口进行请求的转发。七层负载均衡:根据访问用户的HTTP请求头、URL信息将请求转发到特定的主机。载体维度分类硬件负载均衡一般是在定制处理器上运行的独立负载均衡服务器,价格昂贵,土豪专属。硬件负载均衡的主流产品有:F5和A10。软件负载均衡从软件层面实现负载均衡,</div> </li> <li><a href="/article/1763650349220061184.htm" title="Axios 面试题" target="_blank">Axios 面试题</a> <span class="text-muted">qq_42431718</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Axios面试题问题描述:什么是Axios?它的主要特点是什么?答案:Axios是一个基于Promise的HTTP客户端库,用于在浏览器和Node.js中发送HTTP请求。它具有以下主要特点:支持浏览器和Node.js环境。提供简单且一致的API,易于使用。支持PromiseAPI,可以处理异步操作。提供拦截器(interceptors)来在请求和响应之间添加自定义逻辑。支持请求和响应的取消操作。</div> </li> <li><a href="/article/1763227144772739072.htm" title="VUE 入门及应用 ( Axios )" target="_blank">VUE 入门及应用 ( Axios )</a> <span class="text-muted">春哥的魔法书</span> <a class="tag" taget="_blank" href="/search/VUE/1.htm">VUE</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/Axios/1.htm">Axios</a> <div>7.axios异步通信官网:http://www.axios-js.com/zh-cnAxios是一个基于promise的HTTP库,可以用在浏览器和node.js中。特性从浏览器中创建XMLHttpRequests从node.js创建http请求支持PromiseAPI拦截请求和响应转换请求数据和响应数据取消请求自动转换JSON数据客户端支持防御XSRF7.0.前置技术7.0.1.AJAX7.0</div> </li> <li><a href="/article/1763164460240953344.htm" title="你必须知道postman和Jmeter做接口测试区别" target="_blank">你必须知道postman和Jmeter做接口测试区别</a> <span class="text-muted">测试界的世清</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/1.htm">技术分享</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/postman/1.htm">postman</a><a class="tag" taget="_blank" href="/search/jmeter/1.htm">jmeter</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a> <div>1.用例组织方式Jmeter的组织方式相对比较扁平,它首先没有WorkSpace的概念,直接是TestPlan,TestPlan下创建的ThreadsGroup就相当于TestCase,并没有TestSuite的层级。Postman功能上更简单,组织方式也更轻量级,它主要针对的就是单个的HTTP请求。Collection就相当于是Project,而Collection中可以创建不定层级的Folde</div> </li> <li><a href="/article/1762281718687031296.htm" title="API接口介绍" target="_blank">API接口介绍</a> <span class="text-muted">前端小菜鸡yy</span> <a class="tag" taget="_blank" href="/search/node%E5%AD%A6%E4%B9%A0/1.htm">node学习</a><a class="tag" taget="_blank" href="/search/node/1.htm">node</a><a class="tag" taget="_blank" href="/search/restful/1.htm">restful</a> <div>2.RESTfulAPIRESTfulAPI是一种特殊风格的接口,主要特点有如下几个:URL中的路径表示资源,路径中不能有动词,例如create,delete等这些都不能有操作资源要与HTTP请求方法对应操作结果要与HTTP响应状态码对应3.json-serverjson-server是一个JS编写的工具包,可以快速的搭建RESTfulAPI服务步骤:安装:npmi-gjson-server创建J</div> </li> <li><a href="/article/1762272906357858304.htm" title="浅谈web性能测试" target="_blank">浅谈web性能测试</a> <span class="text-muted">.咖啡加剁椒</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/1.htm">自动化测试</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>什么是性能测试?web性能应该注意些什么?性能测试,简而言之就是模仿用户对一个系统进行大批量的操作,得出系统各项性能指标和性能瓶颈,并从中发现存在的问题,通过多方协助调优的过程。而web端的性能测试应该注意的指标有:用户操作的响应时间、系统的吞吐量(TPS)、系统的硬件资源情况(CPU、硬盘、磁盘)、网络资源占用情况等web性能测试之HTTP请求关于性能测试中,HTTP请求类的性能指标都需要我们去</div> </li> <li><a href="/article/1762029352092000256.htm" title="【javascript】axios用法介绍" target="_blank">【javascript】axios用法介绍</a> <span class="text-muted">wecode66</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>Axios是一个基于Promise的JavaScriptHTTP客户端,用于浏览器和Node.js。它可以用于发起HTTP请求,支持浏览器环境和Node.js环境。Axios是一个流行的库,主要用于处理HTTP请求和响应。以下是Axios的一些主要特点和用法:简单易用:Axios提供了简单、一致的API,使得发送HTTP请求变得非常容易。PromiseBased:Axios是基于Promise的库</div> </li> <li><a href="/article/1761869747084943360.htm" title="Python 爬虫从入门到精通" target="_blank">Python 爬虫从入门到精通</a> <span class="text-muted">武帝为此</span> <a class="tag" taget="_blank" href="/search/python%E7%88%AC%E8%99%AB/1.htm">python爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/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>一、爬虫简介爬虫用来自动获取网络上信息。Python因其丰富的第三方库和易读性,成为了爬虫开发的热门选择。二、环境配置与基本工具1.Python环境配置安装Python3.x版本并配置好环境。DownloadPython|Python.org2.常用库介绍requests:用于处理HTTP请求的库,可以发送GET、POST等请求并获取响应数据。BeautifulSoup:用于解析HTML或XML文</div> </li> <li><a href="/article/1761069091386347520.htm" title="Web服务器基础介绍" target="_blank">Web服务器基础介绍</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> <div>目录Web服务器基础介绍一、HTML是什么?二、静态网页和动态网页1、静态网页2、动态网页3、动态网页语言PHPJSPPythonRuby三、HTTP协议1、HTTP协议是什么?2、HTTP请求访问的方法3、GET与POST比较GET:POST:4、HTTP状态码5、HTTP请求访问的完整过程6、请求报文7、响应报文Web服务器基础介绍一、HTML是什么?超文本标记语言,编程语言,主要负责实现页面</div> </li> <li><a href="/article/1761047442192650240.htm" title="Gin项目结构搭建" target="_blank">Gin项目结构搭建</a> <span class="text-muted">Geek大侠</span> <a class="tag" taget="_blank" href="/search/Gin%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">Gin项目实战</a><a class="tag" taget="_blank" href="/search/gin/1.htm">gin</a> <div>1、Gin是什么Gin是一个用Go(Golang)编写的HTTPWeb框架。它具有类似Martini的API,但性能比Martini快40倍。Gin是一个用于构建Web应用的Go语言框架,它提供了简洁且高效的API来处理HTTP请求和响应。Gin的设计目标是快速、易用和具有良好的性能。以下是一些Gin框架的特点和优势:快速和高效:Gin使用了基于Radix树的路由引擎,相比其他流行的Go框架,如n</div> </li> <li><a href="/article/1761016224726175744.htm" title="GET和POST两种HTTP 方法比较" target="_blank">GET和POST两种HTTP 方法比较</a> <span class="text-muted">阳阳大魔王</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a> <div>超文本传输协议(HTTP)的设计目的是保证客户端与服务器之间的通信。工作方式是客户端与服务器之间的请求-应答协议。举例:web浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。客户端(浏览器)向服务器提交HTTP请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET和POST。GET-从指定的</div> </li> <li><a href="/article/1761009552523841536.htm" title="http管道化" target="_blank">http管道化</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/%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> <div>HTTP管道化(HTTPpipelining)是HTTP/1.1协议中的一项机制,允许客户端发送多个HTTP请求到服务器端,而无需等待每个请求的响应。通过HTTP管道化,客户端可以在单个TCP连接上发送多个请求,而服务器则可以并行处理这些请求,减少了请求-响应周期之间的等待时间,提高了传输效率和性能。下面是HTTP管道化的工作流程:客户端发起多个HTTP请求并将它们打包发送到服务器端,而无需等待响</div> </li> <li><a href="/article/1760688076927062016.htm" title="python爬虫常用的库" target="_blank">python爬虫常用的库</a> <span class="text-muted">一剑丶飘香</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a> <div>Python爬虫常用的库包括但不限于以下几种:请求库:`urllib`:Python3自带的库,用于发送HTTP请求,但现在可能被`requests`替代。1`requests`:第三方库,功能强大,使用简单,是当前最常用的请求库。2`Selenium`:自动化测试工具,用于模拟用户操作浏览器,适用于复杂页面。解析库:`lxml`:第三方库,支持HTML和XML的解析,支持XPath的解析方</div> </li> <li><a href="/article/1759956100771311616.htm" title="Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战" target="_blank">Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战</a> <span class="text-muted">NullzzZ</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/Cloud%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0/1.htm">Cloud系列文章</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a> <div>一、SpringCloudZuul过滤链1.1工作原理Zuul的核心逻辑是由一系列的Filter来实现的,他们能够在进行HTTP请求或者相应的时候执行相关操作。ZuulFilter的主要特性有一下几点:Filter的类型:Filter的类型决定了它在Filter链中的执行顺序。路由动作发生前、路由动作发生时,路由动作发生后,也可能是路由过程发生异常时。Filter的执行顺序:同一种类型的Filte</div> </li> <li><a href="/article/1759938352569741312.htm" title="Android客户端HTTP请求服务端Servlet,app启动优化策略" target="_blank">Android客户端HTTP请求服务端Servlet,app启动优化策略</a> <span class="text-muted">m0_64383184</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/%E9%9D%A2%E8%AF%95/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> <div>PrintWriterout=response.getWriter();Stringname=request.getParameter(“username”);if(name!=null&&!"".equals(name)){Stringresult=“”"+name+""";out.write("{“name”:"+result+"}");return;}}publicvoiddoPost(Ht</div> </li> <li><a href="/article/77.htm" title="算法 单链的创建与删除" target="_blank">算法 单链的创建与删除</a> <span class="text-muted">换个号韩国红果果</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div> 先创建结构体 struct student { int data; //int tag;//标记这是第几个 struct student *next; }; // addone 用于将一个数插入已从小到大排好序的链中 struct student *addone(struct student *h,int x){ if(h==NULL) //?????? </div> </li> <li><a href="/article/204.htm" title="《大型网站系统与Java中间件实践》第2章读后感" target="_blank">《大型网站系统与Java中间件实践》第2章读后感</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/java%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">java中间件</a> <div>       断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。          看完整章内容,</div> </li> <li><a href="/article/331.htm" title="zeus持久层spring事务单元测试" target="_blank">zeus持久层spring事务单元测试</a> <span class="text-muted">deng520159</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a> <div>今天把zeus事务单元测试放出来,让大家指出他的毛病, 1.ZeusTransactionTest.java 单元测试   package com.dengliang.zeus.webdemo.test; import java.util.ArrayList; import java.util.List; import org.junit.Test; import </div> </li> <li><a href="/article/458.htm" title="Rss 订阅 开发" target="_blank">Rss 订阅 开发</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/%E8%AE%A2%E9%98%85/1.htm">订阅</a><a class="tag" taget="_blank" href="/search/rss/1.htm">rss</a><a class="tag" taget="_blank" href="/search/%E8%A7%84%E8%8C%83/1.htm">规范</a> <div>                RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。   RSS</div> </li> <li><a href="/article/585.htm" title="分页查询实现" target="_blank">分页查询实现</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5%E6%9F%A5%E8%AF%A2/1.htm">分页查询</a> <div>在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。 按实现形式分前台分页和服务器分页: 前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。 服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据</div> </li> <li><a href="/article/712.htm" title="spring jms异步消息处理" target="_blank">spring jms异步消息处理</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/jms/1.htm">jms</a> <div>spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下: </div> </li> <li><a href="/article/839.htm" title="highCharts柱状图" target="_blank">highCharts柱状图</a> <span class="text-muted">布衣凌宇</span> <a class="tag" taget="_blank" href="/search/hightCharts/1.htm">hightCharts</a><a class="tag" taget="_blank" href="/search/%E6%9F%B1%E5%9B%BE/1.htm">柱图</a> <div>第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller   @Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController {  private UserServi</div> </li> <li><a href="/article/966.htm" title="我的spring学习笔记2-IoC(反向控制 依赖注入)" target="_blank">我的spring学习笔记2-IoC(反向控制 依赖注入)</a> <span class="text-muted">aijuans</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><a class="tag" taget="_blank" href="/search/Spring+%E6%95%99%E7%A8%8B/1.htm">Spring 教程</a><a class="tag" taget="_blank" href="/search/spring3+%E6%95%99%E7%A8%8B/1.htm">spring3 教程</a><a class="tag" taget="_blank" href="/search/Spring+%E5%85%A5%E9%97%A8/1.htm">Spring 入门</a> <div>IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。 IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明: 如:程序中有 Mysql.calss 、Oracle.class 、SqlSe</div> </li> <li><a href="/article/1093.htm" title="TLS java简单实现" target="_blank">TLS java简单实现</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/keystore/1.htm">keystore</a><a class="tag" taget="_blank" href="/search/tls/1.htm">tls</a><a class="tag" taget="_blank" href="/search/secure/1.htm">secure</a> <div>  1. SSLServer.java package ssl; import java.io.FileInputStream; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import java.security.KeyStore; import </div> </li> <li><a href="/article/1220.htm" title="Zip解压压缩文件" target="_blank">Zip解压压缩文件</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/Zip%E6%A0%BC%E5%BC%8F%E8%A7%A3%E5%8E%8B/1.htm">Zip格式解压</a><a class="tag" taget="_blank" href="/search/Zip%E6%B5%81%E7%9A%84%E4%BD%BF%E7%94%A8/1.htm">Zip流的使用</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E8%A7%A3%E5%8E%8B/1.htm">文件解压</a> <div>   ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件; ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));     &n</div> </li> <li><a href="/article/1347.htm" title="underscore.js 学习(一)" target="_blank">underscore.js 学习(一)</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/underscore/1.htm">underscore</a> <div>        工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。       学</div> </li> <li><a href="/article/1474.htm" title="java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)" target="_blank">java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)</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/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jstatd/1.htm">jstatd</a> <div>1.介绍         jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。         jstatd是基于RMI的,所以在运行jstatd的服务</div> </li> <li><a href="/article/1601.htm" title="【Spring框架三】Spring常用注解之Transactional" target="_blank">【Spring框架三】Spring常用注解之Transactional</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/transactional/1.htm">transactional</a> <div>Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:   /* * Copyright 2002-2010 the original author or authors. * * Licensed under the Apache License, Version </div> </li> <li><a href="/article/1728.htm" title="我(程序员)的前进方向" target="_blank">我(程序员)的前进方向</a> <span class="text-muted">bitray</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....</div> </li> <li><a href="/article/1855.htm" title="nginx lua开发经验总结" target="_blank">nginx lua开发经验总结</a> <span class="text-muted">ronin47</span> <div>使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa</div> </li> <li><a href="/article/1982.htm" title="java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶" target="_blank">java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.Stack; public class ReverseStackRecursive { /** * Q 66.颠倒栈。 * 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。 * 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。 *1. Pop the top element *2. Revers</div> </li> <li><a href="/article/2109.htm" title="正确理解Linux内存占用过高的问题" target="_blank">正确理解Linux内存占用过高的问题</a> <span class="text-muted">cfyme</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上: Mem:   3889836k total,  3341868k used,   547968k free,   286044k buffers Swap:  6127608k total,&nb</div> </li> <li><a href="/article/2236.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>      当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。       而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。</div> </li> <li><a href="/article/2363.htm" title="自定义类的equals函数" target="_blank">自定义类的equals函数</a> <span class="text-muted">dai_lm</span> <a class="tag" taget="_blank" href="/search/equals/1.htm">equals</a> <div>仅作笔记使用 public class VectorQueue { private final Vector<VectorItem> queue; private class VectorItem { private final Object item; private final int quantity; public VectorI</div> </li> <li><a href="/article/2490.htm" title="Linux下安装R语言" target="_blank">Linux下安装R语言</a> <span class="text-muted">datageek</span> <a class="tag" taget="_blank" href="/search/R%E8%AF%AD%E8%A8%80+linux/1.htm">R语言 linux</a> <div>命令如下:sudo gedit  /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke</div> </li> <li><a href="/article/2617.htm" title="如何修改mysql 并发数(连接数)最大值" target="_blank">如何修改mysql 并发数(连接数)最大值</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了   方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可   方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass</div> </li> <li><a href="/article/2744.htm" title="单一功能原则" target="_blank">单一功能原则</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">面向对象的程序设计</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/1.htm">软件设计</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%8E%9F%E5%88%99/1.htm">编程原则</a> <div>单一功能原则[ 编辑]     SOLID 原则 单一功能原则 开闭原则 Liskov代换原则 接口隔离原则 依赖反转原则 查   论   编 在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有</div> </li> <li><a href="/article/2871.htm" title="POJO、VO和JavaBean区别和联系" target="_blank">POJO、VO和JavaBean区别和联系</a> <span class="text-muted">fanmingxing</span> <a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/javabean/1.htm">javabean</a> <div>POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被</div> </li> <li><a href="/article/2998.htm" title="SpringSecurity3.X--LDAP:AD配置" target="_blank">SpringSecurity3.X--LDAP:AD配置</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/SpringSecurity/1.htm">SpringSecurity</a> <div>前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。   将配置文件中的如下部分删除: <!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密--> </div> </li> <li><a href="/article/3125.htm" title="mac mysql 修改密码" target="_blank">mac mysql 修改密码</a> <span class="text-muted">IXHONG</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-</div> </li> <li><a href="/article/3252.htm" title="设计模式--抽象工厂模式" target="_blank">设计模式--抽象工厂模式</a> <span class="text-muted">kerryg</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>抽象工厂模式:     工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。     总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,</div> </li> <li><a href="/article/3379.htm" title="评"高中女生军训期跳楼”" target="_blank">评"高中女生军训期跳楼”</a> <span class="text-muted">nannan408</span> <div>   首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。    孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军</div> </li> <li><a href="/article/3506.htm" title="scala如何读取和写入文件内容?" target="_blank">scala如何读取和写入文件内容?</a> <span class="text-muted">qindongliang1922</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>直接看如下代码: package file import java.io.RandomAccessFile import java.nio.charset.Charset import scala.io.Source import scala.reflect.io.{File, Path} /** * Created by qindongliang on 2015/</div> </li> <li><a href="/article/3633.htm" title="C语言算法之百元买百鸡" target="_blank">C语言算法之百元买百鸡</a> <span class="text-muted">qiufeihu</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何? 代码如下: #include <stdio.h> int main() { int cock,hen,chick; /*定义变量为基本整型*/ for(coc</div> </li> <li><a href="/article/3760.htm" title="Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode" target="_blank">Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode</a> <span class="text-muted">wyz2009107220</span> <a class="tag" taget="_blank" href="/search/NameNode/1.htm">NameNode</a> <div>正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。 1. Secondary NameNode 原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image 优点:Hadoop较早的版本都自带,</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>