• Web基础与HTTP协议


    (一)概念

    HTTP协议中文翻译为超文本传输协议,是互联网上使用最广泛的一种网络协议,用于客户端和服务器之间的通信。它定义了客户端和服务器之间的数据传输格式和通信规则。

    在Linux系统中HTTP协议使用的语言是HTML,即超文本标记语言。是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。

    (二)网页文件

    在HTTP中使用的网页文件为 html 文件,通常有以下两种文件

    • 以 .html 为后缀的文件
    • 以 .htm  为后缀的文件

    (三)HTML网页的文件结构

    (1)HTML网页的基本格式

    1. <html>
    2. <head><title> 标题 </title></head>
    3. <body> 内容 </body>
    4. </html>

    (2)head头标签中常用标签

    标签描述
    </td><td style="text-align:center;">定义了文档的标题</td></tr><tr><td style="text-align:center;"><base></td><td style="text-align:center;">定义了页面链接标签的默认链接地址</td></tr><tr><td style="text-align:center;"><link></td><td style="text-align:center;">定义了一个文档和外部资源之间的关系</td></tr><tr><td style="text-align:center;"><meta></td><td style="text-align:center;">定义了 HTML 文档中的元数据</td></tr><tr><td style="text-align:center;"><script></td><td style="text-align:center;">定义了客户端的脚本文件</td></tr><tr><td style="text-align:center;"><style></td><td style="text-align:center;">定义了 HTML 文档的样式文件</td></tr></tbody></table></div> <h4><a name="t5"></a>(3)body内容标签中常用标签</h4> <div class="table-box"><table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td style="text-align:center;">标签</td><td style="text-align:center;">描述</td></tr><tr><td style="text-align:center;"><table></td><td style="text-align:center;">定义一个表格</td></tr><tr><td style="text-align:center;"><tr></td><td style="text-align:center;">定义了表格中的一行</td></tr><tr><td style="text-align:center;"><td></td><td style="text-align:center;">定义了表格中某一行的一列</td></tr><tr><td style="text-align:center;"><img></td><td style="text-align:center;">定义了一个图像</td></tr><tr><td style="text-align:center;"><a></td><td style="text-align:center;">定义了一个超链接</td></tr><tr><td style="text-align:center;"><p></td><td style="text-align:center;">定义了一行</td></tr><tr><td style="text-align:center;"><br></td><td style="text-align:center;">定义了换行</td></tr><tr><td style="text-align:center;"><font></td><td style="text-align:center;">定义了字体</td></tr><tr><td style="text-align:center;"><h1></td><td style="text-align:center;">定义字体大小</td></tr></tbody></table></div> <h2><a name="t6"></a>(四)静态页面和动态页面</h2> <p>静态页面:是一个标准的 html 网页,一般的情况下都是以 .html .htm .shtml 为后缀的网页文件。静态网页是没有数据库支持的,不包含任何的应用程序,在网页当中是不可以进行交互的。</p> <p>动态页面:动态网页是有数据库支持的,可以自动更新,在网页当中可以进行交互,包含使用 php JAVA Python 高级语言编写的应用程序。</p> <h2><a name="t7"></a>(五)HTTPP协议的版本</h2> <ul><li>HTTP/0.9</li></ul> <blockquote> <p>是一款已经过时的版本</p> </blockquote> <ul><li>HTTP/1.0</li></ul> <blockquote> <p>其只支持文本传输,支持传输http头部信息包含版本和状态码</p> <p>并且只支持短连接,即在一个TCP连接中只能完成一次http请求和响应的过程</p> </blockquote> <ul><li>HTTP/1.1</li></ul> <blockquote> <p>其支持长连接和管道机制,即在一个TCP连接中能完成多次http请求和响应的过程</p> </blockquote> <ul><li>HTTP/2.0</li></ul> <blockquote> <p>其支持二进制传输</p> <p>并且支持长连接和完全多路复用,即支持在一个TCP连接中可完成多次http请求和响应,且不用按照顺序一一对应</p> <p>还支持网页头部压缩和服务端主动推送</p> </blockquote> <ul><li>HTTP/3.0</li></ul> <blockquote> <p>其是基于UDP协议来实现的,具有更高的传输速率</p> </blockquote> <h2><a name="t8"></a>(六)常用的HTTP请求方法</h2> <p>每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作</p> <div class="table-box"><table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td style="text-align:center;">GET</td><td style="text-align:center;">发送查询资源请求,用于查询、读取或下载资源</td></tr><tr><td style="text-align:center;">PUT</td><td style="text-align:center;">向服务器提交数据,用于修改数据</td></tr><tr><td style="text-align:center;">POST</td><td style="text-align:center;">向服务器提交数据,用于添加数据</td></tr><tr><td style="text-align:center;">DELETE</td><td style="text-align:center;">用于删除资源</td></tr><tr><td style="text-align:center;">HEAD</td><td style="text-align:center;">用于查询网页头部信息和元数据</td></tr></tbody></table></div> <h2><a name="t9"></a>(七)HTTP响应状态码</h2> <p>HTTP响应状态码分为正常响应和异常响应两种;正常响应又分为正常响应和重定向响应,异常响应又分为客户端请求的错误响应好热服务端的异常响应</p> <div class="table-box"><table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td colspan="2" rowspan="1" style="text-align:center;">正常</td><td colspan="2" rowspan="1" style="text-align:center;">异常</td></tr><tr><td style="text-align:center;">2XX</td><td style="text-align:center;">3XX</td><td style="text-align:center;">4XX</td><td style="text-align:center;">5XX</td></tr><tr><td style="text-align:center;">正常</td><td style="text-align:center;">重定向</td><td style="text-align:center;">客户端请求错误</td><td style="text-align:center;">服务端响应异常</td></tr></tbody></table></div> <p><strong><span style="background-color:#98c091;">常见的HTTP响应状态码:</span></strong></p> <div class="table-box"><table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td style="text-align:center;">200</td><td style="text-align:center;">一切正常</td></tr><tr><td style="text-align:center;">301</td><td style="text-align:center;">永久重定向</td></tr><tr><td style="text-align:center;">302</td><td style="text-align:center;">临时重定向</td></tr><tr><td style="text-align:center;">401</td><td style="text-align:center;">账号密码验证有误</td></tr><tr><td style="text-align:center;">403</td><td style="text-align:center;">拒绝禁止访问</td></tr><tr><td style="text-align:center;">404</td><td style="text-align:center;">请求文件不存在</td></tr><tr><td style="text-align:center;">500</td><td style="text-align:center;">服务器内部有错误</td></tr><tr><td style="text-align:center;">502</td><td style="text-align:center;">是错误无效的网关</td></tr><tr><td style="text-align:center;">503</td><td style="text-align:center;">该服务不可用</td></tr><tr><td style="text-align:center;">504</td><td style="text-align:center;">网关请求超时</td></tr></tbody></table></div> <h2><a name="t10"></a>(八)HTTP 请求流程</h2> <p>用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。</p> <h4><a name="t11"></a>(1)请求报文</h4> <p>请求报文包含请求行、请求头、请求体</p> <blockquote> <p>请求行:里面包括请求方法、URL、http协议版本</p> <p>请求头:请求头为请求报文添加了一些附加信息</p> <p>请求体:里面包含向服务器提交的数据</p> </blockquote> <h4><a name="t12"></a>(2)响应报文</h4> <p>响应报文包含响应行、响应头、响应体</p> <blockquote> <p>响应行:里面包括协议版本、状态码、状态码秒数</p> <p>响应头:响应头为响应报文添加了一些附加信息</p> <p>响应体:里面包含服务器返回的数据</p> </blockquote> <p></p> <p></p> <p></p> </div> </div> </li> <li class="list-group-item ul-li"> <b>相关阅读:</b><br> <nobr> <a href="/Article/Index/739221">十七年运维老兵万字长文讲透优维低代码~</a> <br /> <a href="/Article/Index/1043334">vsto excel 表格存在循环引用 删除名称管理器很慢</a> <br /> <a href="/Article/Index/925195">迅为RK3568开发板ubuntu图形界面开机免密自登录</a> <br /> <a href="/Article/Index/1314742">使用 vue + vant 开发移动端网页</a> <br /> <a href="/Article/Index/1379010">Cin-Cout vs Scanf-Printf</a> <br /> <a href="/Article/Index/1401342">thinkphp5.1 关联查询</a> <br /> <a href="/Article/Index/815939">家居品牌如何在小红书上推广?家居产品推广看这里</a> <br /> <a href="/Article/Index/1887298">大语言模型驱动的跨域属性级情感分析——论文阅读笔记</a> <br /> <a href="/Article/Index/944247">记录链接方法概述总结</a> <br /> <a href="/Article/Index/1256953">CTreeCtrl动态创建从字符串创建根节点</a> <br /> </nobr> </li> <li class="list-group-item from-a mb-2"> 原文地址:https://blog.csdn.net/2401_83784774/article/details/139431881 </li> </ul> </div> <div class="col-lg-4 col-sm-12"> <ul class="list-group" style="word-break:break-all;"> <li class="list-group-item ul-li-bg" aria-current="true"> 最新文章 </li> <li class="list-group-item ul-li"> <nobr> <a href="/Article/Index/1484446">攻防演习之三天拿下官网站群</a> <br /> <a href="/Article/Index/1515268">数据安全治理学习——前期安全规划和安全管理体系建设</a> <br /> <a href="/Article/Index/1759065">企业安全 | 企业内一次钓鱼演练准备过程</a> <br /> <a href="/Article/Index/1485036">内网渗透测试 | Kerberos协议及其部分攻击手法</a> <br /> <a href="/Article/Index/1877332">0day的产生 | 不懂代码的"代码审计"</a> <br /> <a href="/Article/Index/1887576">安装scrcpy-client模块av模块异常,环境问题解决方案</a> <br /> <a href="/Article/Index/1887578">leetcode hot100【LeetCode 279. 完全平方数】java实现</a> <br /> <a href="/Article/Index/1887512">OpenWrt下安装Mosquitto</a> <br /> <a href="/Article/Index/1887520">AnatoMask论文汇总</a> <br /> <a href="/Article/Index/1887496">【AI日记】24.11.01 LangChain、openai api和github copilot</a> <br /> </nobr> </li> </ul> <ul class="list-group pt-2" style="word-break:break-all;"> <li class="list-group-item ul-li-bg" aria-current="true"> 热门文章 </li> <li class="list-group-item ul-li"> <nobr> <a href="/Article/Index/888177">十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!</a> <br /> <a href="/Article/Index/797680">奉劝各位学弟学妹们,该打造你的技术影响力了!</a> <br /> <a href="/Article/Index/888183">五年了,我在 CSDN 的两个一百万。</a> <br /> <a href="/Article/Index/888179">Java俄罗斯方块,老程序员花了一个周末,连接中学年代!</a> <br /> <a href="/Article/Index/797730">面试官都震惊,你这网络基础可以啊!</a> <br /> <a href="/Article/Index/797725">你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法</a> <br /> <a href="/Article/Index/797702">心情不好的时候,用 Python 画棵樱花树送给自己吧</a> <br /> <a href="/Article/Index/797709">通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!</a> <br /> <a href="/Article/Index/797716">13 万字 C 语言从入门到精通保姆级教程2021 年版</a> <br /> <a href="/Article/Index/888192">10行代码集2000张美女图,Python爬虫120例,再上征途</a> <br /> </nobr> </li> </ul> </div> </div> </div> <!-- 主体 --> <!--body结束--> <!--这里是footer模板--> <!--footer--> <nav class="navbar navbar-inverse navbar-fixed-bottom"> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="text-muted center foot-height"> Copyright © 2022 侵权请联系<a href="mailto:2656653265@qq.com">2656653265@qq.com</a>    <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2022015340号-1</a> </div> <div style="width:300px;margin:0 auto; padding:0px 5px;"> <a href="/regex.html">正则表达式工具</a> <a href="/cron.html">cron表达式工具</a> <a href="/pwdcreator.html">密码生成工具</a> </div> <div style="width:300px;margin:0 auto; padding:5px 0;"> <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502049817" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"> <img src="" style="float:left;" /><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 11010502049817号</p></a> </div> </div> </div> </div> </nav> <!--footer--> <!--footer模板结束--> <script src="/js/plugins/jquery/jquery.js"></script> <script src="/js/bootstrap.min.js"></script> <!--这里是scripts模板--> <!--scripts模板结束--> </body> </html>