• Web基础与HTTP协议


    Web基础

    网页的概念

    • 网页
      • 纯文本格式文件
      • 编写语言是HTML
      • 在用户的浏览器中被翻译成网页形式显示出来
    • 网站
      • 由一个个页面构成的,是多个网页的结合体
    • 主页
      • 打开网站后出现的第一个网页称为网站主页(或首页)
    • 域名
      • 浏览网页时输入的网址
    • HTTP
      • 用来传输网页的通信协议
    • URL
      • 是一种万维网寻址系统
    • HTML
      • 用来编写网页的超文本标记语言
    • 超链接
      • 超链接是将网站中不同网页连接起来的功能
    • 发布
      • 将制作好的网页上传到服务器供用户访问的过程

    HTML概述

    • HTML超文本标记语言
      • HTML叫做超文本标记语言,是一种规范,也是一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。
      • 网页的 “源码”
    • 浏览器:"解释和执行"HTML源码的工具

    在这里插入图片描述

    在这里插入图片描述

    • HTML文件可以使用任何能够生成txt文件的文本编辑器来编辑,生成超文本标记语言文件,只用修改文件名后缀为”.html”或“.htm”即可。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    HTML 文件结构如下:

    
    	  网页的内容描述信息
    	  网页显示的内容
    
    
    • 1
    • 2
    • 3
    • 4
    • 头标中常用标签
    标签描述
    </td><td>定义了文档的标题</td></tr><tr><td><base></td><td>定义了页面链接标签的默认链接地址</td></tr><tr><td><link></td><td>定义了一个文档和外部资源之间的关系</td></tr><tr><td><meta></td><td>定义了 HTML 文档中的元数据</td></tr><tr><td><script></td><td>定义了客户端的脚本文件</td></tr><tr><td><style></td><td>定义了 HTML 文档的样式文件</td></tr></tbody></table></div> <ul><li><mark>内容标签中常用标签</mark></li></ul> <div class="table-box"><table><thead><tr><th>标签</th><th>描述</th></tr></thead><tbody><tr><td><table></td><td>定义一个表格</td></tr><tr><td><tr></td><td>定义了表格中的一行</td></tr><tr><td><td></td><td>定义了表格中某一行的一列</td></tr><tr><td><img></td><td>定义了一个图像</td></tr><tr><td><a></td><td>定义了一个超链接</td></tr><tr><td><p></td><td>定义了一行</td></tr><tr><td><br></td><td>定义了换行</td></tr><tr><td><font></td><td>定义了字体</td></tr><tr><td><h1></td><td>定义字体大小</td></tr></tbody></table></div> <p><img src="https://1000bd.com/contentImg/2024/04/11/a5736004d1db5d60.png" alt="在这里插入图片描述"><br> <img src="https://1000bd.com/contentImg/2024/04/11/4cc5ab4059fff0a6.png" alt="在这里插入图片描述"></p> <h3><a name="t4"></a><a id="Web_78"></a>Web概述</h3> <ul><li>Web即全球广域网,也称万维网</li><li>一种分布式图形信息系统</li><li>建立在internet上的一种完了服务</li></ul> <h4><a name="t5"></a><a id="Web10Web20_83"></a>Web1.0与Web2.0</h4> <ul><li> <p>Web1.0</p> <ul><li>以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供内容<br> 这个过程是网站到用户的单向行为</li><li>简单来说就是一个静态的网页</li></ul> </li><li> <p>Web2.0</p> <ul><li>更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网闸内容的制造者</li><li>加强了网站与用户的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户上学的交流参与</li><li>web2.0特征: 用户分享,以兴趣未聚合点的社群、开放的平台,活跃的用户</li></ul> </li></ul> <h3><a name="t6"></a><a id="_96"></a>静态网页与<a href="https://so.csdn.net/so/search?q=%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5&spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-view="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"动态网页\"}"}" data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"动态网页\"}"}" data-tit="动态网页" data-pretit="动态网页">动态网页</a></h3> <h4><a name="t7"></a><a id="_97"></a>静态页面</h4> <p>在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,静态网页是标准的HTML文件,它的文件扩展名是.htm、.html。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。</p> <h4><a name="t8"></a><a id="_101"></a>动态页面</h4> <p>所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。</p> <p>动态网页是基本的html语法规范与Java、PHP、C#等高级程序设计语言、<a href="https://so.csdn.net/so/search?q=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BC%96%E7%A8%8B&spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-view="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BC%96%E7%A8%8B&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"数据库编程\"}"}" data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BC%96%E7%A8%8B&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"数据库编程\"}"}" data-tit="数据库编程" data-pretit="数据库编程">数据库编程</a>等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。</p> <h4><a name="t9"></a><a id="_106"></a>动态页面与静态页面区别</h4> <p>静态网页:就是标准的HTML文件,扩展名是.htm、.html,没有后台数据库支持、不含应用程序和网页不可交互,不含有“?”<br> 动态页面:有后台数据库支持,页面可交互,会自动更新,包含应用程序,扩展名通常以.php、.jsp、.py、.ruby、.perl等形式为后缀,页网址中有一个标志性的符号“?”</p> <h2><a name="t10"></a><a id="HTTP_113"></a>HTTP协议概述</h2> <p>HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。<br> <img src="https://1000bd.com/contentImg/2024/04/11/f4ee174d978264ce.png" alt="在这里插入图片描述"></p> <h3><a name="t11"></a><a id="HTTP_116"></a>HTTP协议版本</h3> <ul><li>http/1.0:纯文本传输;http响应后会立即关闭TCP连接;支持http头部信息(比如http协议版本号,状态码等)</li><li>http/1.1:支持长连接(连接保持,持久连接)和管道机制(在一TCP连接中实现多个http请求和响应)</li><li>http/2.0:二进制传输;支持长连接和完全多路复用(在一个TCP连接中同时发送多个请求,且不用按照顺序一一对应);支持网页头部压缩,支持服务端主动推送</li><li>http/3.0:基于UDP协议的</li></ul> <h3><a name="t12"></a><a id="http_123"></a>http请求方法</h3> <p>GET | 发送查询请求资源,做读取或想下载资源</p> <p>PUT | 向服务器提交数据,修改资源</p> <p>DELETE | 删除资源</p> <p>POST | 向服务器提交数据,添加/插入资源</p> <p>HEAD | 请求网页的头部信息,查询元信息</p> <hr> <ul><li>GET <ul><li>GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的</li></ul> </li><li>PUT <ul><li>与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。</li></ul> </li><li>POST <ul><li>POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。</li></ul> </li><li>DELETE <ul><li>DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作</li></ul> </li></ul> <h3><a name="t13"></a><a id="GET__POST__149"></a>GET 和 POST 区别</h3> <ul><li> <p>GET 方法:<br> 从指定的服务器上获得数据<br> GET请求能被缓存<br> GET请求会保存在浏览器的浏览纪录里<br> GET请求有长度的限制<br> 主要用于获取数据<br> 查询的字符串会显示在URL后缀中,不安全,比如 http://www.test.com/a.php?Id=123</p> </li><li> <p>POST 方法:<br> 提交数据给指定服务器处理<br> POST请求不能被缓存<br> POST请求不会保存在浏览器的浏览纪录里<br> POST请求没有长度限制<br> 查询的字符串不会显示在URL中,比较安全</p> </li></ul> <h3><a name="t14"></a><a id="HTTP_166"></a>HTTP状态码</h3> <p>HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。<br> 通常正常的状态码为2xx,3xx(如200),如果出现异常会返回4xx,5xx(如404)。<br> <img src="https://1000bd.com/contentImg/2024/04/11/bc81da64b119f591.png" alt="在这里插入图片描述"></p> <h3><a name="t15"></a><a id="HTTP_171"></a>HTTP常见状态码</h3> <div class="table-box"><table><thead><tr><th>状态码</th><th>含义</th></tr></thead><tbody><tr><td>200</td><td>一切正常</td></tr><tr><td>301</td><td>永久重定向</td></tr><tr><td>302</td><td>临时重定向</td></tr><tr><td>400</td><td>请求语法错误</td></tr><tr><td>401</td><td>用户名/密码验证错误</td></tr><tr><td>403</td><td>拒绝访问(客户端ip/主机名 被拉黑)</td></tr><tr><td>404</td><td>请求的文件不存在,客户端请求的URL路径有误,服务器相对应的路径没有该网页文件</td></tr><tr><td>500</td><td>服务器应用程序有BUG导致的</td></tr><tr><td>502</td><td>错误网关,代理服务器接收到来自服务端的错误/无效响应</td></tr><tr><td>503</td><td>服务不可用,服务器过载或正在维护(宕机)导致的</td></tr><tr><td>504</td><td>网关超时,代理服务器无法在规定的时间内收到后端服务器的响应(响应超时)导致</td></tr></tbody></table></div> <h3><a name="t16"></a><a id="HTTP__187"></a>HTTP 请求流程分析</h3> <p>用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。</p> <h4><a name="t17"></a><a id="_190"></a>请求报文</h4> <p>请求行:请求行由请求方法、URL 以及协议版本三部分组成。<br> 请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。<br> 空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。<br> 请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。</p> <p>常用的请求头:</p> <p>请求头 | 描述<br> Host | 接受请求的服务器地址,可以是 IP:端口号,也可以是域名<br> User-Agent | 发送请求的应用程序名称<br> Connection | 指定与连接相关的属性,如 Connection:Keep-Alive<br> Accept-Charset | 通知服务端可以发送的编码格式<br> Accept-Encoding | 通知服务端可以发送的数据压缩格式<br> Accept-Language | 通知服务端可以发送的语言</p> <h4><a name="t18"></a><a id="_206"></a>响应报文</h4> <p>状态行:状态行由协议版本,状态码,状态码描述三部分组成。<br> 响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。<br> 空行:响应头部的最后会有一个空行,表示响应头部结束。<br> 响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。</p> <p>常见响应头:</p> <p>响应头 | 描述<br> Server | 服务器应用程序软件的名称和版本<br> Content-Type | 响应正文的类型(是图片还是二进制字符串)<br> Content-Length | 响应正文长度<br> Content-Charset | 响应正文使用的编码<br> Content-Encoding | 响应正文使用的数据压缩格式<br> Content-Language | 响应正文使用的语言</p> </div> </div> </li> <li class="list-group-item ul-li"> <b>相关阅读:</b><br> <nobr> <a href="/Article/Index/1661435">单片机建立自己的库文件(2)</a> <br /> <a href="/Article/Index/1359737">【Redis高级篇】分片集群--并发</a> <br /> <a href="/Article/Index/1345660">【Spatial-Temporal Action Localization(五)】论文阅读2020年</a> <br /> <a href="/Article/Index/1239649">从源码级深入剖析Tomcat类加载原理</a> <br /> <a href="/Article/Index/804151">1236288-25-7 DSPE-PEG-FA Folic acid PEG DSPE 磷脂-聚乙二醇-叶酸</a> <br /> <a href="/Article/Index/852289">JAVA大型OA协同办公系统源码【源码免费分享】</a> <br /> <a href="/Article/Index/1520455">利用HTML5 MediaDevices API调用手机摄像头并结合JavaScript库实现人脸识别</a> <br /> <a href="/Article/Index/1161803">阿里P8架构师都在学习参考的SpringCloud微服务实战文档</a> <br /> <a href="/Article/Index/1168961">二十一、学习Lua 面向对象</a> <br /> <a href="/Article/Index/1456663">pdm使用经验</a> <br /> </nobr> </li> <li class="list-group-item from-a mb-2"> 原文地址:https://blog.csdn.net/weixin_60917414/article/details/130845895 </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>