HTTP请求的完全过程

2022-10-11 22:00:44 159
魁首哥

1.1 浏览器根据 域名解析 IP地址

浏览器根据访问的域名找到其IP地址。DNS查找过程如下:

浏览器缓存:首先搜索浏览器自身的DNS缓存(缓存的时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否是有域名对应的条目,而且没有过期,如果有且没有过期则解析到此结束。

系统缓存:如果浏览器自身的缓存里面没有找到对应的条目,那么浏览器会搜索操作系统自身的DNS缓存,如果找到且没有过期则停止搜索解析到此结束。

路由器缓存:如果系统缓存也没有找到,则会向路由器发送查询请求。

ISP(互联网服务提供商) DNS缓存:如果在路由缓存也没找到,最后要查的就是ISP缓存DNS的服务器。

1.2 浏览器与 WEB服务器 建立一个 TCP 连接

TCP的3次握手。

1.3 浏览器给WEB服务器发送一个HTTP请求

一个HTTP请求报文由请求行( request line)、请求头部(headers)、空行(blank line)和请求数据(request body)4个部分组成。

图1 HTTP请求格式

1.3.1 请求行

请求行分为三个部分:请求方法、请求地址URL和HTTP协议版本,它们之间用空格分割。例如,GET /index.html HTTP/1.1。

1.请求方法

HTTP/1.1 定义的请求方法有8种:GET(完整请求一个资源)、POST(提交表单)、PUT(上传文件)、DELETE(删除)、PATCH、HEAD(仅请求响应首部)、OPTIONS(返回请求的资源所支持的方法)、TRACE(追求一个资源请求中间所经过的代理)。最常的两种GET和POST,如果是 RESTful 接口的话一般会用到GET、POST、DELETE、PUT。

(1)GET

当客户端要从服务器中读取文档时,当点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的,使用的都是GET方式。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,会送给客户端。

使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号‘?’代表URL的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。通过GET方式传递的数据直接放在地址中,所以GET方式的请求一般不包含“请求内容”部分,请求数据以地址的形式表现在请求行。

地址中‘?’之后的部分就是通过GET发送的请求数据,各个数据之间用‘&’符号隔开。显然这种方式不适合传送私密数据。另外,由于不同的浏览器对地址的字符限制也有所不同,一般最多只能识别1024个字符 ,所以如果需要传送大量数据的时候,也不适合使用GET方式。 如果数据是英文字母/数字,原样发送;如果是空格,转换为+;如果是中文/其他字符,则直接把 字符串 用BASE64加密,得出:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的 ASCII

(2)POST

允许客户端给服务器提供信息较多。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。POST方式请求行中不包含数据字符串,这些数据保存在“请求内容”部分,各数据之间也是使用‘&’符号隔开。POST方式大多用于页面的表单中。因为POST也能完成GET的功能,因此多数人在设计表单的时候一律都使用POST方式,其实这是一个误区。GET方式也有自己的特点和优势,我们应该根据不同的情况来选择是使用GET还是使用POST。

图2 HTTP请求方法

2.URL

URL:统一资源定位符,是一种资源位置的抽象唯一识别方法。

组成:<协议>://<主机>:<端口>/<路径>

端口和路径有事可以省略(HTTP默认端口号是80)

3.协议版本

协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1

1.3.2 请求头部

请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用 冒号 分隔。

请求头部的最后会有一个空行,表示请求头部结束,接下来为请求数据。

1.3.3 请求数据

请求数据不在GET方法中使用,而在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最长使用的请求头部是Cntent-Type和Content-Length。下面是一个POST方法的请求报文:

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/x HTML +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:

Content-Length:25

Content-Type:application/x-www-form-urlencoded

  空行

username=aa&password=1234  请求数据

1.4 服务器端响应HTTP请求,浏览器得到HTML代码

HTTP响应报文由状态行(status line)、相应头部(headers)、空行(blank line)和响应数据(response body)4个部分组成。

1.4.1 状态行

状态行由3部分组成,分别为:协议版本、状态码、状态码扫描。其中协议版本与请求报文一致,状态码描述是对状态码的简单描述。

1.4.2 响应头部

1.4.3 响应数据

用于存放需要返回给客户端的数据信息。

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> </p> <p data-track="67"></head> </p> <p data-track="68"><body> </p> <p data-track="69">Hello HTTP! </p> <p data-track="70"></body> </p> <p data-track="71"></html> </p> <h3><span>1.5 浏览器解析HTML代码,并请求HTML代码中的资源 </span></h3> <p data-track="73">浏览器拿到 <span class="candidate-entity-word" data-gid="14714593">HTML文件 </span>后,开始解析HTML代码,遇到静态资源时,就向服务器端去请求下载。 </p> <h3><span>1.6 关闭TCP连接,浏览器对页面进行渲染呈现给用户 </span></h3> <p data-track="75">浏览器利用自己内部的工作机制,把请求到的静态资源和HTML代码进行渲染,呈现给用户。 </p> <p data-track="77">来源:CSDN </p> </div> <div class="zhi-con-tag"><a href="https://mip.qiaqa.com/tags/dns.html">dns</a><a href="https://mip.qiaqa.com/tags/%E6%B5%8F%E8%A7%88%E5%99%A8.html">浏览器</a><a href="https://mip.qiaqa.com/tags/%E7%BC%93%E5%AD%98.html">缓存</a></div> <div class="zhi-con-action"> <div class="zhi-con-action-item"> <div class="icon-button fenBtn"><i class="ri-share-circle-line"></i> 分享 <div class="fenxme"><span class="menu-arrow"></span> <ul> <li><a href="https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=https://mip.qiaqa.com/php/149033.html&title=HTTP%E8%AF%B7%E6%B1%82%E7%9A%84%E5%AE%8C%E5%85%A8%E8%BF%87%E7%A8%8B&desc=1.1%E6%B5%8F%E8%A7%88%E5%99%A8%E6%A0%B9%E6%8D%AE%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90IP%E5%9C%B0%E5%9D%80%E6%B5%8F%E8%A7%88%E5%99%A8%E6%A0%B9%E6%8D%AE%E8%AE%BF%E9%97%AE%E7%9A%84%E5%9F%9F%E5%90%8D%E6%89%BE%E5%88%B0%E5%85%B6IP%E5%9C%B0%E5%9D%80%E3%80%82DNS%E6%9F%A5%E6%89%BE%E8%BF%87%E7%A8%8B%E5%A6%82%E4%B8%8B%EF%BC%9A%E6%B5%8F%E8%A7%88%E5%99%A8%E7%BC%93%E5%AD%98%EF%BC%9A%E9%A6%96%E5%85%88%E6%90%9C%E7%B4%A2%E6%B5%8F%E8%A7%88%E5%99%A8%E8%87%AA%E8%BA%AB%E7%9A%84DNS%E7%BC%93%E5%AD%98%EF%BC%88%E7%BC%93%E5%AD%98%E7%9A%84%E6%97%B6%E9%97%B4%E6%AF%94%E8%BE%83%E7%9F%AD%EF%BC%8C%E5%A4%A7%E6%A6%82%E5%8F%AA%E6%9C%891%E5%88%86%E9%92%9F%EF%BC%8C%E4%B8%94%E5%8F%AA%E8%83%BD%E5%AE%B9%E7%BA%B3...&summary=1.1%E6%B5%8F%E8%A7%88%E5%99%A8%E6%A0%B9%E6%8D%AE%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90IP%E5%9C%B0%E5%9D%80%E6%B5%8F%E8%A7%88%E5%99%A8%E6%A0%B9%E6%8D%AE%E8%AE%BF%E9%97%AE%E7%9A%84%E5%9F%9F%E5%90%8D%E6%89%BE%E5%88%B0%E5%85%B6IP%E5%9C%B0%E5%9D%80%E3%80%82DNS%E6%9F%A5%E6%89%BE%E8%BF%87%E7%A8%8B%E5%A6%82%E4%B8%8B%EF%BC%9A%E6%B5%8F%E8%A7%88%E5%99%A8%E7%BC%93%E5%AD%98%EF%BC%9A%E9%A6%96%E5%85%88%E6%90%9C%E7%B4%A2%E6%B5%8F%E8%A7%88%E5%99%A8%E8%87%AA%E8%BA%AB%E7%9A%84DNS%E7%BC%93%E5%AD%98%EF%BC%88%E7%BC%93%E5%AD%98%E7%9A%84%E6%97%B6%E9%97%B4%E6%AF%94%E8%BE%83%E7%9F%AD%EF%BC%8C%E5%A4%A7%E6%A6%82%E5%8F%AA%E6%9C%891%E5%88%86%E9%92%9F%EF%BC%8C%E4%B8%94%E5%8F%AA%E8%83%BD%E5%AE%B9%E7%BA%B3..." target="_blank" title="分享空间"><i class="ri-qq-fill"></i> 分享空间</a></li> <li><a class="weibo-share" href="https://service.weibo.com/share/share.php?url=https://mip.qiaqa.com/php/149033.html&title=HTTP%E8%AF%B7%E6%B1%82%E7%9A%84%E5%AE%8C%E5%85%A8%E8%BF%87%E7%A8%8B&pic=&appkey=&searchPic=true" target="_blank" title="分享微博"><i class="ri-weibo-fill"></i> 分享微博</a></li> <li><span class="ewm"><img src="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/function/api.php?act=poster&url=https://mip.qiaqa.com/php/149033.html" alt="https://mip.qiaqa.com/php/149033.html" /></span><span>手机扫一扫</span></li> </ul> </div> </div> <div class="action-hai"><span class="haibao" id="149033"><i class="ri-camera-lens-line"></i> 海报</span></div> <div class="action-eyes"><i class="ri-eye-line"></i> 159</div> </div> </div> <section class="zhi-prevnext"> <a href="https://mip.qiaqa.com/php/149032.html" title="上一篇:3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过">上一篇:3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过</a> <a href="https://mip.qiaqa.com/php/149035.html" title="下一篇:Phper学C兴趣入门-为什么php手册里说某个字符串函数是二进制安全">下一篇:Phper学C兴趣入门-为什么php手册里说某个字符串函数是二进制安全</a> </section> </div> <div class="zhi-wd-xiang"> <h3>相关文章</h3> <ul> <li><a href="https://mip.qiaqa.com/idea/339141.html" target="_blank">pytest 缓存机制:测试结果复用与增量测试实践</a></li> <li><a href="https://mip.qiaqa.com/a/338856.html" target="_blank">如何在 Linux下管理系统的动态链接库缓存</a></li> <li><a href="https://mip.qiaqa.com/a/338819.html" target="_blank">Linux如何查看和修改系统的主机名解析顺序</a></li> <li><a href="https://mip.qiaqa.com/a/338777.html" target="_blank">Linux如何优化系统的磁盘缓存机制</a></li> <li><a href="https://mip.qiaqa.com/a/338775.html" target="_blank">Linux如何安装和配置 Unbound DNS 服务器</a></li> <li><a href="https://mip.qiaqa.com/idea/338514.html" target="_blank">Sublime Text 插件冲突:如何清理缓存与手动安装兼容版本?</a></li> <li><a href="https://mip.qiaqa.com/idea/338443.html" target="_blank">Kubernetes 服务发现解析:DNS 与 Endpoint 切片的原理与配置</a></li> <li><a href="https://mip.qiaqa.com/a/338373.html" target="_blank">Linux中如何配置和使用 Bind DNS 服务器</a></li> <li><a href="https://mip.qiaqa.com/php/149315.html" target="_blank">Socket.io使用及所有事件详细介绍</a></li> <li><a href="https://mip.qiaqa.com/php/149299.html" target="_blank">10个技巧优化PHP程序Laravel 5框架</a></li> </ul> </div> </div> </div> <div class="zhi-right"> <div class="side-box"> <div class="widget" id="divPrevious"> <h3>最近发表</h3> <ul> <li><a title="G41显卡是什么级别?能玩什么游戏?" href="https://mip.qiaqa.com/a/339411.html">G41显卡是什么级别?能玩什么游戏?</a></li> <li><a title="怎么关QQ空间?一步一步教你关闭QQ空间" href="https://mip.qiaqa.com/a/339410.html">怎么关QQ空间?一步一步教你关闭QQ空间</a></li> <li><a title="IE缓存组件异常怎么修复?详细修复步骤解析" href="https://mip.qiaqa.com/a/339409.html">IE缓存组件异常怎么修复?详细修复步骤解析</a></li> <li><a title="Drupal安装教程" href="https://mip.qiaqa.com/a/339408.html">Drupal安装教程</a></li> <li><a title="Juniper认证有哪些方向?Juniper认证怎么准备?" href="https://mip.qiaqa.com/a/339407.html">Juniper认证有哪些方向?Juniper认证怎么准备?</a></li> <li><a title="网站宕机是什么意思?网站宕机怎么办?" href="https://mip.qiaqa.com/a/339406.html">网站宕机是什么意思?网站宕机怎么办?</a></li> <li><a title="域名转向另一个域名怎么操作?" href="https://mip.qiaqa.com/a/339405.html">域名转向另一个域名怎么操作?</a></li> <li><a title="电脑出现实时调试怎么处理?怎么关闭?" href="https://mip.qiaqa.com/a/339404.html">电脑出现实时调试怎么处理?怎么关闭?</a></li> <li><a title="QQ不能复制粘贴怎么回事?怎么设置?" href="https://mip.qiaqa.com/a/339403.html">QQ不能复制粘贴怎么回事?怎么设置?</a></li> <li><a title="TBYJ文件用什么软件打开?" href="https://mip.qiaqa.com/a/339402.html">TBYJ文件用什么软件打开?</a></li> </ul> </div><div class="widget" id="divzhihotcon"> <h3>热评文章</h3> <ul> <li><a href="https://mip.qiaqa.com/java/679.html" title="11 个简单的 Java 性能调优技巧">11 个简单的 Java 性能调优技巧</a></li><li><a href="https://mip.qiaqa.com/java/726.html" title="在 Java 中运用动态挂载实现 Bug 的热修复">在 Java 中运用动态挂载实现 Bug 的热修复</a></li><li><a href="https://mip.qiaqa.com/java/798.html" title="降低Java垃圾回收开销的5条建议">降低Java垃圾回收开销的5条建议</a></li><li><a href="https://mip.qiaqa.com/web/1239.html" title="7 个顶级的 HTML5 Canvas 动画赏析">7 个顶级的 HTML5 Canvas 动画赏析</a></li><li><a href="https://mip.qiaqa.com/a/1495.html" title="ftp是什么?ftp的使用方法">ftp是什么?ftp的使用方法</a></li><li><a href="https://mip.qiaqa.com/a/1551.html" title="怎样不花钱优化网站?简单5招教你驱动网站流量">怎样不花钱优化网站?简单5招教你驱动网站流量</a></li><li><a href="https://mip.qiaqa.com/a/1634.html" title="网页搜索优化的8个要点">网页搜索优化的8个要点</a></li><li><a href="https://mip.qiaqa.com/web/1657.html" title="一道面试题引发的对 JavaScript 类型转换的思考">一道面试题引发的对 JavaScript 类型转换的思考</a></li> </ul> </div><div class="widget" id="divzhihotart"> <h3>热门文章</h3> <ul> <li><div class="zhihotcon-img"><a target="_blank" href="https://mip.qiaqa.com/a/338294.html" title="Linux怎样优化网络带宽使用"><img src="https://oss.xajjn.com/article/2025/04/20/0007112896.png" alt="Linux怎样优化网络带宽使用" /></a></div><div class="zhihotcon-title"><h4><a href="https://mip.qiaqa.com/a/338294.html" title="Linux怎样优化网络带宽使用">Linux怎样优化网络带宽使用</a></h4><p><i class="ri-time-line"></i> 2025-04-20</p></div></li><li><div class="zhihotcon-img"><a target="_blank" href="https://mip.qiaqa.com/jingyan/338145.html" title="如何手工制作台历?简单步骤与创意设计指南"><img src="https://oss.xajjn.com/article/2025/04/19/0721062466.jpeg" alt="如何手工制作台历?简单步骤与创意设计指南" /></a></div><div class="zhihotcon-title"><h4><a href="https://mip.qiaqa.com/jingyan/338145.html" title="如何手工制作台历?简单步骤与创意设计指南">如何手工制作台历?简单步骤与创意设计指南</a></h4><p><i class="ri-time-line"></i> 2025-04-19</p></div></li><li><div class="zhihotcon-img"><a target="_blank" href="https://mip.qiaqa.com/jingyan/338132.html" title="如何查询他人身份证号码?合法途径与注意事项解析"><img src="https://oss.xajjn.com/article/2025/04/19/0720312429.jpeg" alt="如何查询他人身份证号码?合法途径与注意事项解析" /></a></div><div class="zhihotcon-title"><h4><a href="https://mip.qiaqa.com/jingyan/338132.html" title="如何查询他人身份证号码?合法途径与注意事项解析">如何查询他人身份证号码?合法途径与注意事项解析</a></h4><p><i class="ri-time-line"></i> 2025-04-19</p></div></li><li><div class="zhihotcon-img"><a target="_blank" href="https://mip.qiaqa.com/a/337687.html" title="Windows防火墙打不开怎么办?全面解决方法"><img src="https://oss.xajjn.com/article/2025/04/14/18155998.jpeg" alt="Windows防火墙打不开怎么办?全面解决方法" /></a></div><div class="zhihotcon-title"><h4><a href="https://mip.qiaqa.com/a/337687.html" title="Windows防火墙打不开怎么办?全面解决方法">Windows防火墙打不开怎么办?全面解决方法</a></h4><p><i class="ri-time-line"></i> 2025-04-14</p></div></li><li><div class="zhihotcon-img"><a target="_blank" href="https://mip.qiaqa.com/a/337519.html" title="Linux设置环境变量的方法?linux设置环境变量的命令"><img src="https://oss.xajjn.com/article/2025/04/11/1327308.png" alt="Linux设置环境变量的方法?linux设置环境变量的命令" /></a></div><div class="zhihotcon-title"><h4><a href="https://mip.qiaqa.com/a/337519.html" title="Linux设置环境变量的方法?linux设置环境变量的命令">Linux设置环境变量的方法?linux设置环境变量的命令</a></h4><p><i class="ri-time-line"></i> 2025-04-11</p></div></li><li><div class="zhihotcon-img"><a target="_blank" href="https://mip.qiaqa.com/a/336561.html" title="CentOS与Aliyun Linux有什么区别?如何选择最佳方案?"><img src="https://oss.xajjn.com/article/2025/03/24/2221322169.jpeg" alt="CentOS与Aliyun Linux有什么区别?如何选择最佳方案?" /></a></div><div class="zhihotcon-title"><h4><a href="https://mip.qiaqa.com/a/336561.html" title="CentOS与Aliyun Linux有什么区别?如何选择最佳方案?">CentOS与Aliyun Linux有什么区别?如何选择最佳方案?</a></h4><p><i class="ri-time-line"></i> 2025-03-24</p></div></li> </ul> </div> </div> </div> </div> <div class="zhi-user-modal"> <div class="zhi-user-modal-container"> <ul class="zhi-switcher"> <li><a href="javascript:void(0);">用户登录</a></li> <li><a href="javascript:void(0);">注册新用户</a></li> </ul> <div id="zhi-login"> <form method="post" action="#" class="zhi-form"> <p class="fieldset"> <label class="image-replace zhi-username" for="edtUserName">用户名</label> <input type="text" class="full-width has-padding has-border" placeholder="用户名" id="edtUserName" name="edtUserName" size="20" value="" tabindex="1" /> </p> <p class="fieldset"> <label class="image-replace zhi-password" for="edtPassWord">密码</label> <input type="password" class="full-width has-padding has-border" placeholder="密码" id="edtPassWord" name="edtPassWord" size="20" tabindex="2" /> </p> <p class="fieldset"> <input type="checkbox" name="chkRemember" id="chkRemember" tabindex="98" /> <label for="chkRemember">记住登录状态</label> <a class="fieldsetrig" href="https://mip.qiaqa.com/?user=repass">忘记密码?</a> </p> <p class="fieldset"> <input id="btnPost" name="btnPost" type="submit" value="登录" class="full-width" tabindex="99"/> <input type="hidden" name="username" id="username" value="" /> <input type="hidden" name="password" id="password" value="" /> <input type="hidden" name="savedate" id="savedate" value="1" /> </p> </form> </div> <div id="zhi-singup"> <form method="post" action="#" class="zhi-form" id="formsing"> <p class="zhi-singup-set"> <label class="image-replace zhi-username">用户名</label> <input class="full-width has-padding has-border" id="zhanghao" name="zhanghao" type="text" placeholder="输入用户名"> </p> <p class="zhi-singup-set"> <label class="image-replace zhi-email">邮箱</label> <input class="full-width has-padding has-border" id="email" name="email" type="text" placeholder="输入mail"> </p> <p class="zhi-singup-set"> <label class="image-replace zhi-password">密码</label> <input class="full-width has-padding has-border" id="zpassword" name="zpassword" type="password" placeholder="输入密码"> </p> <p class="zhi-singup-set"> <label class="image-replace zhi-password">确认密码</label> <input class="full-width has-padding has-border" id="repassword" name="repassword" type="password" placeholder="确认密码"> </p> <p class="zhi-singup-set"> <input name="code" type="text" maxlength="6" class="form-control" placeholder="图形验证码" autocomplete="off" required=""> <span class="fieldset-code" style="width:96px;"> <img src="https://mip.qiaqa.com/zb_system/script/c_validcode.php?id=singin" id="singin" onclick="javascript:this.src='https://mip.qiaqa.com/zb_system/script/c_validcode.php?id=singin&tm='+Math.random();" alt="图形验证码"/> </span> </p> <p class="zhi-singup-set"> <input type="checkbox" name="xieyi" id="xieyi" tabindex="98" /> <label for="xieyi">我已阅读并同意 <a href="">用户协议</a></label> </p> <p class="zhi-singup-set"> <input id="btnSin" class="full-width" type="submit" value="注册新用户"> </p> </form> </div> <a href="javascript:void(0);" class="zhi-close-form"></a> </div> </div> <div class="zhiback" id="zhiback"> <div class="askBox"> <div class="ask-group"> <form action="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/function/cmd.php?act=ask" method="POST" id="formask"> <div class="ask-item"> <div class="ask-item-img"> <img src="https://mip.qiaqa.com/zb_users/avatar/0.png?1746531552" alt="" /> </div> <input type="text" id="asktitle" name="asktitle" placeholder="请输入问题标题"> </div> <div class="ask-item"> <textarea name="askcon" id="askcon"> 请输入问题背景及详细信息... </textarea> </div> <div class="ask-footer"> <div class="ask-item-as"> <input type="hidden" name="csrfToken" value="0fbcc261d3ac77380953d12678c9c20f"> <input type="submit" class="ask-item-btn" value="发布" /> </div> </div> </form> </div> <button aria-label="关闭" type="button" class="ask-close"><i class="ri-close-line"></i></button> </div> </div> <div id="backbox" class="backbox"> <div class="back genight"><i class="ri-sun-fill"></i></div> <div class="back" id="totop"><i class="ri-arrow-up-s-line"></i></div> </div> <div class="zhi-menu-m"> <button type="button" class="btn-close" aria-label="Close"><i class="ri-close-line"></i></button> <div class="logo"> <a href="https://mip.qiaqa.com/"><img src="https://mip.qiaqa.com/logo.png" alt="恰卡编程网"/></a> </div> <div class="zhi-menu-search"> <form name="search" method="post" action="https://mip.qiaqa.com/zb_system/cmd.php?act=search"> <input name="q" size="11" class="zhi-menu-search-input" type="text" placeholder="请输入关键词" autocomplete="off"> <button class="zhi-menu-search-submit" type="submit"><i class="ri-search-2-line"></i></button> </form> </div> <nav id="mnav"></nav> </div> <footer class="zhi-footer"> <div class="inner"> <div class="footer-center-info"> 恰卡编程网--程序员编程资料和编程经验分享平台,从入门到进阶,非常详细。学习Java级其他网络编程语言的人很多,借助本站教程,相信你能很快精通并出类拔萃。 </div> <div class="zhi-footer-bottom"> <p>Copyright © 2018-2022 恰卡网 qiaqa.com 版权所有 <a rel="nofollow" class="ico-ico" href="http://www.beian.gov.cn/portal/recordQuery?token=9c5a0517-c8ae-4a6b-b2c7-0dbf41cd45f0" target="_blank">苏ICP备18042295号</a> </p> </div> </div> </footer> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?a88faa5532b1e037da0ed2f1324c3674"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script src="https://mip.qiaqa.com/zb_system/script/jquery-2.2.4.min.js"></script> <script src="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/script/swiper.js"></script> <script src="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/script/copy.js"></script> <script src="https://mip.qiaqa.com/zb_users/plugin/UEditor/third-party/prism/prism.js"></script> <script src="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/script/html2canvas.min.js"></script> <script src="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/script/lightbox.js"></script> <script src="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/script/jquery.form.js"></script> <script src="https://mip.qiaqa.com/zb_users/theme/ZhiMedia/script/zhimedia.js?v=1.3.6"></script> </body> </html><!-- 缓存生成时间: 2025-05-06 19:39:10 by ZBlogCache 0.02 ms , 0 query , 2058kb memory , 0 error -->