测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程


HTTP协议及一次【请求、响应】的完整过程

  • HTTP协议简介
  • HTTP协议工作原理
  • 一次HTTP请求的完整过程
    • 浏览器根据域名解析IP地址
    • 浏览器通过IP地址与WEB服务器建立一个TCP连接
    • 浏览器给WEB服务器发送一个HTTP请求
      • HTTP协议-浏览器发送给服务器的HTTP请求的格式
        • 请求行
          • 请求方法
          • 请求地址URI
          • HTTP协议版本
        • 请求头部
          • 请求头部的各属性
        • 请求数据
    • 服务器端响应HTTP请求,向浏览器发送响应内容,比如HTML页面代码
      • 状态行
        • 状态码
          • 重定向的请求代表当前功能还需要后续操作才能完成。
      • 响应头部
      • 响应正文
    • 浏览器解析HTML代码,并请求HTML代码中的资源
    • 关闭该TCP连接,浏览器对页面进行渲染呈现给用户

补入这篇博客,内容很全
HTTP协议简介 HTTP协议(Hyper Text Transfer Protocol,超文本传输协议,即传输文字、图片、音频、视频等超文本数据)是一种用于分布式、协作式和超媒体信息系统的应用层协议。为了更快地处理大量事务,确保协议的可伸缩性,HTTP协议被设计成了一种无状态协议,不保留之前一切的请求或响应报文的信息。HTTP协议也是万维网(WWW,World Wide Web)的数据通信的基础。
【比如,用户登录到一家购物网站,即使他点击进入该网站的其他页面后,也需要能继续保持登录状态。针对这一情况,网站为了能 够掌握是谁送出的请求,需要保存用户的状态】——这是否与http请求取样器中的keep alive有关。HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能, 于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管 理状态了。
HTTP是一个客户端(用户)和服务器端(网站)请求和应答的标准,其定义了定义Web客户端如何向Web服务器请求Web页面,以及服务器如何把Web页面响应给客户端。【HTTP使用的是TCP/IP协议,而非UDP,(待确认)】。
HTTP协议中并没有规定必须使用TCP/IP或其支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。因为UDP是不可靠传输,所以上面那句话提到“HTTP使用的是TCP/IP协议,而非UDP”,自认
用户通过使用各种工具(网页浏览器、网络爬虫或者 “其它,比如Jmeter”)作为客户端,来发起一个HTTP请求到服务器的指定端口(默认端口为80)。这个客户端被称为用户代理程序(User Agent)。接受并响应该HTTP请求的服务器上,存储着各种用户需要的资源,比如HTML文件和图像。这个被用户请求的服务器被称为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
User Agent:目前理解HTTP请求头中的User Agent属性是用于服务器获取浏览器版本,以判断是否支持一些技术(例如框架)。比如有的浏览器支持框架,则服务器会根据User Agent识别出该浏览器,并向浏览器发送含有框架的页面;若不支持,则服务器向浏览器发送无框架的页面——【自己查阅资料的原话:网站管理员探测user agent,对Mozilla浏览器发送含有框架的页面,对非Mozilla浏览器发送没有框架的页面】。
HTTP协议工作原理 通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及响应请求而返回的内容,如文件、错误消息、或者其它信息。
HTTP协议工作流程: 第一步:建立TCP/IP连接,客户端与服务器通过Socket三次握手进行连接。 第二步:客户端向服务端发起HTTP请求(即请求行?例如:POST/login.html http/1.1)。 第三步:客户端发送请求头部、请求内容,最后会发送一空白行,标示客户端请求完毕。 第四步:服务器做出应答,表示对于客户端请求的应答(即状态行?例如:HTTP/1.1 200 OK)。 第五步:服务器向客户端发送响应头部信息,发送一空白行,表示应答头信息发送完毕。随后以Content-type要求的数据格式,发送响应正文给客户端。 第六步:服务端关闭TCP连接,如果服务器或者客户端的Connection:keep-alive,则客户端与服务器端继续保存连接,在下次请求时可以继续使用这次的连接。

一次HTTP请求的完整过程
  1. 浏览器根据域名解析IP地址
  2. 浏览器通过IP地址与WEB服务器建立一个TCP连接
  3. 浏览器给WEB服务器发送一个HTTP请求
  4. 服务器端响应HTTP请求,浏览器得到服务器响应的内容,比如HTML页面代码
  5. 浏览器解析HTML代码,并请求HTML代码中的资源
  6. 关闭该TCP连接,浏览器对页面进行渲染呈现给用户
浏览器根据域名解析IP地址 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址。查找过程依次如下:
  1. 浏览器缓存:首先搜索浏览器自身的DNS缓存(缓存的时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否是有域名对应且未过期的条目。如果有,则解析到此结束。
google浏览器查看自身DNS缓存,访问网址chrome://net-internals/#dns待学“访问网址后该怎么做”
  1. 操作系统缓存:如果上一步没有找到对应的条目,浏览器会搜索操作系统自身的DNS缓存,如果找到没有过期的对应条目,则停止搜索,解析到此结束。
查看操作系统自身的DNS缓存,以Windows系统为例,命令提示行输入ipconfig /displaydns进行查看
  1. hosts文件:如果上一步没有找到对应条目,浏览器就会尝试读取操作系统本地的文件,以windows系统为例,C:\Windows\System32\drivers\etc内的hosts文件
host文件,即C:\Windows\System32\drivers\etc\hosts
  1. 如果上一步没有找到对应条目,向DNS服务器请求进行域名解析
本步骤更具体地说,浏览器就会发起一个DNS的系统调用,向本地配置的首选DNS服务器(一般是电信运营商提供的,也可以使用像Google提供的DNS服务器)发起域名解析请求。域名解析请求是通过UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是说,运营商的DNS服务器必须得提供给我们该域名的IP地址

(运营商的)DNS服务器在收到域名解析请求后
  1. 首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。
  2. ?路由器缓存:如果系统缓存也没有找到,则会向路由器发送查询请求。
  3. ?ISP(互联网服务提供商) DNS缓存:如果在路由缓存也没找到,最后要查的就是ISP缓存DNS的服务器。
  4. 如果没有找到对应的条目,则有运营商的DNS代我们的浏览器发起迭代DNS解析请求:
    ①运营商的DNS(DNS服务器都内置13台根域的DNS的IP地址)首先会找根域的DNS的IP地址。
    ②根据找到的根域DNS地址,运营商的DNS就会向其发起请求(请问www.linux178.com这个域名的IP地址是多少啊?)
    ③根域DNS发现要查询的网址是一个顶级域com的一个域名,于是就告诉运营商的DNS,我不知道这个域名的IP地址,但是我知道com域的IP地址,你找它去。
    ④于是运营商的DNS就得到了com域的IP地址,随后向com域的IP地址发起了请求(请问www.linux178.com这个域名的IP地址是多少?)
    ⑤com域服务器告诉运营商的DNS,我不知道www.linux178.com这个域名的IP地址,但是我知道linux178.com这个域的DNS地址,你去找它去。
    ⑥于是运营商的DNS向linux178.com这个域名的DNS地址(这个一般就是由域名注册商提供的,像万网,新网等)发起请求(请问www.linux178.com这个域名的IP地址是多少?)这个时候linux178.com域的DNS服务器一查,“诶,果真在我这里”,于是就把找到的结果返回给了运营商的DNS服务器
    ⑦运营商的DNS服务器就拿到了www.linux178.com对应的IP地址,并返回给用户的Windows系统内核,内核再把结果返回给浏览器,最终浏览器拿到了www.linux178.com 对应的IP地址,该进行一步的动作了。
浏览器通过IP地址与WEB服务器建立一个TCP连接 根据DNS服务器解析出的IP地址和默认端口号,与该服务器进行TCP连接中3次握手的前两次,来建立连接,(自认)即Jmeter的HTTP请求中的红框部分,如下图所示。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

浏览器给WEB服务器发送一个HTTP请求 TCP的3次握手的第三次,包括但不限于(自认)Jmeter的HTTP请求中的红框部分,如下图所示。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

HTTP协议-浏览器发送给服务器的HTTP请求的格式
一个HTTP请求报文由请求行(request line)、请求头部(headers)、请求数据(request body)和空行(blank line)4个部分组成,如下图右侧汉字标注所示。“空行”即下图中的“| 回车符 | 换行符|”,自认
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

以一次HTTP请求实例为例,如下图红色字体所示:1为请求行,2为请求头部,3为请求数据,三者之间使用“空行(| 回车符 | 换行符|)”间隔。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

请求行 请求行分为三个部分:请求方法(的类型)、请求地址URI和HTTP协议版本,它们之间用空格分割。如上图红色自写1所示。
请求方法 请求地址URI 请求地址URL的组成为<协议>://<主机>:<端口>/<路径>,(自认)<路径>即为URI,如下图所示(下图缺少了端口)。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

HTTP协议版本 协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1。
请求头部 为请求报文添加了一些附加信息,由键值对组成,每行一对,名和值之间使用冒号分隔,如下图中的2。 请求头部的最后,会有一个空行,表示请求头部结束,接下来为请求数据。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

图中的Content-Length表示请求体里面的数据长度;
Content-Type表示正在传输的类型,HTTP允许传输任意类型的数据对象。
请求头部的各属性 测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

请求数据 自认,“请求数据”表示该请求调用接口时传入的实参,如下图第三部分所示,即为本次请求要传入的实参。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

服务器端响应HTTP请求,向浏览器发送响应内容,比如HTML页面代码 HTTP响应报文由状态行(status line)、响应头部(headers)、响应正文(response body)和空行(blank line)4个部分组成。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

状态行
所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,状态码(3位数字组成),以及【状态码描述(描述状态码的原因短语,是对状态码的简单描述)】,彼此由空格分隔,如上图所示。
测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

状态码 测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程
文章图片

状态代码的第一个数字代表当前响应的类型:
  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——需要后续操作才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者无法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误
测试|HTTP协议、【HTTP请求、响应格式】及一次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.5X-Powered-By: PHP/5.2.5Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Pragma: no-cacheContent-Length: 4393Keep-Alive: timeout=5, max=100Connection: Keep-AliveContent-Type: text/html; charset=utf-8 //空行 //响应正文HTTP响应示例<title><body>Hello HTTP!</body></code></blockquote><br /> 浏览器解析HTML代码,并请求HTML代码中的资源 浏览器拿到HTML文件后,开始解析HTML代码,遇到静态资源时,就向服务器端去请求下载。<br /> 关闭该TCP连接,浏览器对页面进行渲染呈现给用户 <strong>【测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程】</strong>浏览器利用自己内部的工作机制,把请求到的静态资源和HTML代码进行渲染,呈现给用户。<br /></p> <div class="dede_pages"><ul></ul></div> <div class="pcd_ad"> <center><div class="_ahwullr0ac"></div> <script type="text/javascript"> (window.slotbydup = window.slotbydup || []).push({ id: "u6834461", container: "_ahwullr0ac", async: true }); </script> <script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/cm.js" async="async" defer="defer" > </script></center> </div> <div class="mbd_ad"> <div style=margin-top:10px;margin-bottom:10px;> <div class="_i7aftr79jl"></div> <script type="text/javascript"> (window.slotbydup = window.slotbydup || []).push({ id: "u5950612", container: "_i7aftr79jl", async: true }); </script> <!-- ½űֻһ --> <script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/cm.js" async="async" defer="defer" > </script> </div> </div> <h3>推荐阅读</h3> <ul class="post-loop post-loop-default cols-0"> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/4173644.html" title="mysql实现排名 mysqlsql排名函数怎么用"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="mysql实现排名 mysqlsql排名函数怎么用" src="/images/defaultpic.gif"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/4173644.html"> <b>mysql实现排名 mysqlsql排名函数怎么用 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/1984589.html" title="大豆蛋白被是什么材料"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="大豆蛋白被是什么材料" src="http://img.readke.com/230508/1201032322-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/1984589.html"> <b>大豆蛋白被是什么材料 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/1770808.html" title="金庸的武侠代表作品是什么"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="金庸的武侠代表作品是什么" src="http://img.readke.com/230425/0924222612-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/1770808.html"> <b>金庸的武侠代表作品是什么 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/2618154.html" title="技嘉主板超频内存 技嘉Z390主板超频指南"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="技嘉主板超频内存 技嘉Z390主板超频指南" src="http://img.readke.com/230705/1A10R1L-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/2618154.html"> <b>技嘉主板超频内存 技嘉Z390主板超频指南 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3193749.html" title="2017年出的关于现代校园恋爱的动漫,有没有什么推荐?"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="2017年出的关于现代校园恋爱的动漫,有没有什么推荐?" src="http://img.readke.com/231001/044612MD-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3193749.html"> <b>2017年出的关于现代校园恋爱的动漫,有没有什么推荐? </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/2690707.html" title="新鲜桂花怎么处理和保存"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="新鲜桂花怎么处理和保存" src="http://img.readke.com/230711/053021O45-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/2690707.html"> <b>新鲜桂花怎么处理和保存 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/951739.html" title="为什么iPhone手机不踏足折叠屏市场?或许离不开这五点原因"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="为什么iPhone手机不踏足折叠屏市场?或许离不开这五点原因" src="http://image.uc.cn/s/wemedia/s/2022/b85163680ead5194d1017c2101663c0a.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/951739.html"> <b>为什么iPhone手机不踏足折叠屏市场?或许离不开这五点原因 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/020643T012022.html" title="SQL|SQL 导出表结构到Excel"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="SQL|SQL 导出表结构到Excel" src="/images/defaultpic.gif"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/020643T012022.html"> <b>SQL|SQL 导出表结构到Excel </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/2056981.html" title="N95 12月25日起赣榆区投放8万个医用防护口罩"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="N95 12月25日起赣榆区投放8万个医用防护口罩" src="/images/defaultpic.gif"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/2056981.html"> <b>N95 12月25日起赣榆区投放8万个医用防护口罩 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3380416.html" title="什么条件下才能领取失业保险金?不领取还是领好?"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="什么条件下才能领取失业保险金?不领取还是领好?" src="http://img.readke.com/231107/1315293055-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3380416.html"> <b>什么条件下才能领取失业保险金?不领取还是领好? </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3259985.html" title="出现菲斯曼锅炉显示0a故障怎么办,故障原因说明与3种解决方法"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="出现菲斯曼锅炉显示0a故障怎么办,故障原因说明与3种解决方法" src="http://img.readke.com/231024/030521BE-0-lp.png"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3259985.html"> <b>出现菲斯曼锅炉显示0a故障怎么办,故障原因说明与3种解决方法 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3369860.html" title="定金合同在什么情况下无效 有哪些情况定金合同无效"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="定金合同在什么情况下无效 有哪些情况定金合同无效" src="http://img.readke.com/231106/021S5Ob-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3369860.html"> <b>定金合同在什么情况下无效 有哪些情况定金合同无效 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3454515.html" title="大金空调打台风后不制冷故障排除图解,主要还是受气温的影响"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="大金空调打台风后不制冷故障排除图解,主要还是受气温的影响" src="http://img.readke.com/231114/1F51C0M-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3454515.html"> <b>大金空调打台风后不制冷故障排除图解,主要还是受气温的影响 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3537789.html" title="40岁自学go语言 零基础学go语言多久"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="40岁自学go语言 零基础学go语言多久" src="/images/defaultpic.gif"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3537789.html"> <b>40岁自学go语言 零基础学go语言多久 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/1461176.html" title="办理加油卡有什么好处 加油卡怎么办理划算"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="办理加油卡有什么好处 加油卡怎么办理划算" src="/images/defaultpic.gif"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/1461176.html"> <b>办理加油卡有什么好处 加油卡怎么办理划算 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3123540.html" title="这样搭配更具有视觉美观性 浅蓝色t恤配什么颜色裤子好看"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="这样搭配更具有视觉美观性 浅蓝色t恤配什么颜色裤子好看" src="http://img.readke.com/230907/0Q632IF-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3123540.html"> <b>这样搭配更具有视觉美观性 浅蓝色t恤配什么颜色裤子好看 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/1630227.html" title="夏天什么时候种白菜 什么时候种白菜"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="夏天什么时候种白菜 什么时候种白菜" src="http://img.readke.com/230418/0435355K4-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/1630227.html"> <b>夏天什么时候种白菜 什么时候种白菜 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3167315.html" title="Win11如何禁用资源管理器历史搜索?Win11禁用资源管理器历史搜索的方法"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="Win11如何禁用资源管理器历史搜索?Win11禁用资源管理器历史搜索的方法" src="http://img.readke.com/230918/1105121137-0-lp.png"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3167315.html"> <b>Win11如何禁用资源管理器历史搜索?Win11禁用资源管理器历史搜索的方法 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/1703676.html" title="特仑苏纯牛奶多少钱一瓶 「特仑苏纯牛奶两种包装」"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="特仑苏纯牛奶多少钱一瓶 「特仑苏纯牛奶两种包装」" src="/images/defaultpic.gif"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/1703676.html"> <b>特仑苏纯牛奶多少钱一瓶 「特仑苏纯牛奶两种包装」 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/3466319.html" title="三菱空调定时闪烁不制冷是什么原因,辅助加热"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="三菱空调定时闪烁不制冷是什么原因,辅助加热" src="http://img.readke.com/231115/193254C96-0-lp.jpg"> </a> </div> <div class="item-content"> <h4 class="item-title"> <a href="/c/3466319.html"> <b>三菱空调定时闪烁不制冷是什么原因,辅助加热 </b></a></h4> <div class="item-meta"> <div class="item-meta-right"> </div> </div> </div> </li> </ul> <p><br /><ul class="post-loop post-loop-list cols-4"><li><a href="/c/649578.html" title="Appium Grid并发测试" target="_blank">Appium Grid并发测试 </a></li> <li><a href="/c/649348.html" title="springmvc配置中,mapper一直依赖注入不进去的问题记录" target="_blank">springmvc配置中,mapper一直依赖注入不进去的问题记录 </a></li> <li><a href="/c/648545.html" title="SpringMVC@RequestMapping注解" target="_blank">SpringMVC@RequestMapping注解 </a></li> <li><a href="/c/648302.html" title="java相关|一次线上http连接被拒绝问题的排查" target="_blank">java相关|一次线上http连接被拒绝问题的排查 </a></li> <li><a href="/c/647555.html" title="APP专项测试 | 内存及cpu" target="_blank">APP专项测试 | 内存及cpu </a></li> <li><a href="/c/645716.html" title="springmvc搭建环境时报No mapping found for HTTP request with URI [/exam3/welcome] in DispatcherServlet with" target="_blank">springmvc搭建环境时报No mapping found for HTTP request with URI [/exam3/welcome] in DispatcherServlet with </a></li> <li><a href="/c/645605.html" title="APP弱网测试" target="_blank">APP弱网测试 </a></li> <li><a href="/c/645345.html" title="背单词app评估测试" target="_blank">背单词app评估测试 </a></li> <li><a href="/c/644981.html" title="app 压力测试" target="_blank">app 压力测试 </a></li> </ul></p> <div class=entry-copyright> <p></p> </div> </div> <div class="entry-footer"> <div class="prev-next sb br mb clearfix"> <p class="post-prev fl ellipsis">上一篇:<a href='/c/650716.html'>python|Python 画图,点线图</a> </p> <p class="post-next fr ellipsis">下一篇:<a href='/c/650718.html'>Python绘图总结|python matplotlib 画图(柱状图)总结</a> </p> </div> </div> </div> </article> </main> <aside class="sidebar"> <div class="widget widget_post_thumb"> <h3 class="widget-title"><span>更多...</span></h3> <ul> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650718.html" title="Python绘图总结|python matplotlib 画图(柱状图)总结"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="Python绘图总结|python matplotlib 画图(柱状图)总结" src="http://img.readke.com/220504/0QG623T-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650718.html" title="Python绘图总结|python matplotlib 画图(柱状图)总结">Python绘图总结|python matplotlib 画图(柱状图)总结</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650717.html" title="测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程" src="http://img.readke.com/220504/0QA31317-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650717.html" title="测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程">测试|HTTP协议、【HTTP请求、响应格式】及一次HTTP请求的完整过程</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650716.html" title="python|Python 画图,点线图"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="python|Python 画图,点线图" src="http://img.readke.com/220504/0Q64330D-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650716.html" title="python|Python 画图,点线图">python|Python 画图,点线图</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650715.html" title="python|Python 画图,柱状图"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="python|Python 画图,柱状图" src="http://img.readke.com/220504/0Q6346047-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650715.html" title="python|Python 画图,柱状图">python|Python 画图,柱状图</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650714.html" title="Web安全|HTTP协议相关漏洞"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="Web安全|HTTP协议相关漏洞" src="http://img.readke.com/220504/0Q62550I-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650714.html" title="Web安全|HTTP协议相关漏洞">Web安全|HTTP协议相关漏洞</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650691.html" title="苹果手机触控怎么设置"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="苹果手机触控怎么设置" src="http://img.readke.com/220504/0P910AY-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650691.html" title="苹果手机触控怎么设置">苹果手机触控怎么设置</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650690.html" title="苹果手机打电话没声音"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="苹果手机打电话没声音" src="http://img.readke.com/220504/0PUU206-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650690.html" title="苹果手机打电话没声音">苹果手机打电话没声音</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650689.html" title="苹果手机电话黑名单在哪里查"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="苹果手机电话黑名单在哪里查" src="http://img.readke.com/220504/0PTQF0-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650689.html" title="苹果手机电话黑名单在哪里查">苹果手机电话黑名单在哪里查</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650688.html" title="苹果手机电话录音怎么打开"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="苹果手机电话录音怎么打开" src="http://img.readke.com/220504/0PS22239-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650688.html" title="苹果手机电话录音怎么打开">苹果手机电话录音怎么打开</a></p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="/c/650687.html" title="电脑微信聊天记录怎么删除"> <img width="480" height="300" class="attachment-default size-default wp-post-image j-lazy" alt="电脑微信聊天记录怎么删除" src="http://img.readke.com/220504/0PR21N1-0-lp.jpg"> </a></div> <div class="item-content"> <p class="item-title"><a href="/c/650687.html" title="电脑微信聊天记录怎么删除">电脑微信聊天记录怎么删除</a></p> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer"> <div class="container"> <div class="clearfix"> <div class="footer-col footer-col-logo"> <!--<img src="/skin/images/logo-footer.png">--></div> <div class="footer-col footer-col-copy"> <ul class="footer-nav hidden-xs"> <li class="menu-item menu-item-706"><a href="/baike/">生活百科</a></li> <li class="menu-item menu-item-706"><a href="/it/">it技术</a></li> </ul> <div class="copyright"> <p>Copyright © 2017-2022 锐客网 <a href="http://beian.miit.gov.cn/" target="_blank" rel="nofollow">京ICP备11041112号-41</a> </p> </div> </div> <div class="footer-col footer-col-sns"> <div class="footer-sns"> </div> </div> </div> </div> </footer> <div class="action action-style-0 action-color-0 action-pos-1" style="bottom:15%;"> <div class="action-item gotop j-top"> <i class="web-icon wi action-item-icon"><svg aria-hidden="true"> <use xlink:href="#wi-arrow-up-2"></use> </svg></i></div> </div> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?79e4e485d34c6fc717489eaa10b314e3"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </div> <script>var _web_js={};</script> <script src="/skin/js/index.js"></script> </body> </html>