• web基础与HTTP协议


    DNS和域名

    DNS作用

    正向解析:根据域名查找对应的IP地址;

    反向解析:根据IP地址查找对应的域名

    域名空间结构

    ① 根域 位于域名空间最顶层,一般用一个 “.” 表示                                
    基础单位,除了根域 其他都只有一个上级域,有0或多个子域,同层域不可重复的子域或域名

    ② 顶级域
    一般代表一种类型的组织机构或国家地区(主要有此两种类型构成),如 net(网络公司)、com(商业)、org(民间团体组织)、edu(教育)、gov(政府)、mil(军事)、cn(中国)、jp(日本)、hk(中国香港)

    ③ 二级域
    用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn …

    ④ 子域
    用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn …

    主机
    主机位于域名空间最下层,就是一台具体的计算机,如 www、mail、都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名),也是这台主机在域名中的全名
     

    网页访问

    网页的概念

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

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

    HTML 基本标签

    (1)HTML 语法规则
    HTML标签采用双标记符的形式,前后标记符对应,分别表示标记开始和结束,标记符中间的内容被标签描述。前标记符由“”表示,结尾标记符多了一个“/”,由“”表示。
    (2)HTML 文件结构
    HTML文件最外层由表示说明该文件是用HTML语言描述的。在它里面是并列的头标签()和内容标签(),最基本的

    ●HTML 文件结构如下:

        网页的内容描述信息
        网页显示的内容

    ●头标签中常用标签:
    标签                描述
                   定义了文档的标题<br> <base>                定义了页面链接标签的默认链接地址<br> <link>                定义了一个文档和外部资源之间的关系<br> <meta>                定义了 HTML 文档中的元数据<br> <script>            定义了客户端的脚本文件<br> <style>                定义了 HTML 文档的样式文件</p> <p>●内容标签中常用标签<br> 标签                描述<br> <table>                定义一个表格<br> <tr>                定义了表格中的一行<br> <td>                定义了表格中某一行的一列<br> <img>                定义了一个图像<br> <a>                    定义了一个超链接<br> <p>                    定义了一行<br> <br>                定义了换行<br> <font>                定义了字体<br> <h1>                定义字体大小</p> <p></p> <h3><a name="t6"></a>静态网页与动态网页</h3> <p>1.静态网页<br> 在网站设计中,纯粹HTML格式的网页通常被称为“静态网页”,静态网页是标准的HTML文件,它的文件扩展名是.htm、.html。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态网页也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字幕等。这些“动态效果”只是视觉上的,与下面将要介绍的动态网页是不同的概念。</p> <p>2.动态网页<br> 所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着HTML代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非是修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。<br> 动态网页是基本的html语法规范与Java、PHP、C#等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。<br>  </p> <p>动态网页和静态网页的区别</p> <p>1.后缀名:静态(.html  .htm)动态(.jsp .asp 等)</p> <p>2.由于动态语言是基于高级程序语言来的,所以他会跟数据库建立连接,读取数据库里面的内容,实时更新。而静态的,不会实时更新,所以哪怕是动图,他也是静态网页。</p> <h3><a name="t7"></a></h3> <h2><a name="t8"></a>HTTP协议</h2> <h3><a name="t9"></a>HTTP 协议概述</h3> <p>HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。</p> <p>HTTP 已经演化出了很多版本,它们中的大部分都是向下兼容的。<br> (1)HTTP/0.9:已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。<br> (2)HTTP/1.0:这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。<br> (3)HTTP/1.1:引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,能很好地配合代理服务器工作。还支持管道方式机制,即在同一个TCP连接里面,客户端可以同时发送多个请求,以便降低线路负载,提高传输速度。<br> (4)HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。引入了头信息压缩机制,使用gzip或compress压缩后再发送。支持服务端推送,允许服务器未经请求,主动向客户端发送资源。</p> <h3><a name="t10"></a></h3> <h3><a name="t11"></a>HTTP 方法</h3> <p>HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST、PUT。</p> <p>HTTP 方法            描述<br> GET                    对服务器资源获取的简单请求<br> PUT                    向服务器提交数据,以修改数据<br> DELETE                删除服务器上的某些资源<br> POST                用于发送包含用户提交数据的请求<br> HEAD                请求页面的首部,获取资源的元信息</p> <p>1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。</p> <p>2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。</p> <p>3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。</p> <p>4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作</p> <p><br> GET 和 POST 比较<br> ●GET 方法:从指定的服务器上获得数据<br> GET请求能被缓存<br> GET请求会保存在浏览器的浏览纪录里<br> GET请求有长度的限制<br> 主要用于获取数据<br> 查询的字符串会显示在URL后缀中,不安全,比如 http://www.test.com/a.php?Id=123 </p> <p>●POST 方法:提交数据给指定服务器处理<br> POST请求不能被缓存<br> POST请求不会保存在浏览器的浏览纪录里<br> POST请求没有长度限制<br> 查询的字符串不会显示在URL中,比较安全<br>  </p> <h3><a name="t12"></a>HTTP 状态码</h3> <p>HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。<br> 通常正常的状态码为2xx,3xx(如200),如果出现异常会返回4xx,5xx(如404)。</p> <p>状态码首位            已定义范围            分类    <br> 1xx                    100-101                信息提示<br> 2xx                    200-206                成功<br> 3xx                    300-305                重定向<br> 4xx                    400-415                客户端错误<br> 5xx                    500-505                服务器错误</p> <p>HTTP 常见状态码<br> 状态码        功能描述<br> 200            一切正常<br> 301            永久重定向<br> 302            临时重定向<br> 401            用户名或密码错误<br> 403            禁止访问(客户端IP地址被拒绝)<br> 404            请求的文件不存在<br> 414            请求URI头部过长<br> 500            服务器内部错误<br> 502            无效网关<br> 503            当前服务不可用<br> 504            网关请求超时<br>  </p> <h3><a name="t13"></a>HTTP 请求流程分析</h3> <p>用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。</p> <p>1.请求报文<br> 请求行:请求行由请求方法、URL 以及协议版本三部分组成。<br> 请求头:请求头为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。<br> 空行:请求头部的最后会有一个空行,表示请求头部结束,接下来为请求体,这一行非常重要,必不可少。<br> 请求体:请求体是请求提交的参数,GET 方法已经在 URL 中指明了参数,所以提交时没有数据。POST 方法提交的参数在请求体中。</p> <p>常用的请求头:<br> 请求头                描述<br> Host                接受请求的服务器地址,可以是 IP:端口号,也可以是域名<br> User-Agent            发送请求的应用程序名称<br> Connection            指定与连接相关的属性,如 Connection:Keep-Alive<br> Accept-Charset        通知服务端可以发送的编码格式<br> Accept-Encoding        通知服务端可以发送的数据压缩格式<br> Accept-Language        通知服务端可以发送的语言</p> <p><br> 2.响应报文<br> 状态行:状态行由协议版本,状态码,状态码描述三部分组成。<br> 响应头:响应头与请求头部类似,为响应报文添加了一些附加信息。<br> 空行:响应头部的最后会有一个空行,表示响应头部结束。<br> 响应体:服务器返回的相应 HTML 数据,浏览器对其解析后显示页面。</p> <p>常见响应头:<br> 响应头                描述<br> Server                服务器应用程序软件的名称和版本<br> Content-Type        响应正文的类型(是图片还是二进制字符串)<br> Content-Length        响应正文长度<br> Content-Charset     响应正文使用的编码<br> Content-Encoding    响应正文使用的数据压缩格式<br> Content-Language    响应正文使用的语言</p> <h3><a name="t14"></a></h3> <h2><a name="t15"></a>总结</h2> <p>1.域名空间结构</p> <p>主机名.子域.【二级域】.顶级域.</p> <p>2.HTML文档结构</p> <p>文件名以 .html 或 .htm为后缀</p> <p>3.网页基本标签</p> <p><html></p> <p><head>...</head></p> <p><body>...</body></p> <p></html></p> <p>4.http/1.0与http/2.0区别</p> <p>http/1.0:纯文本传输,http响应后立即关闭tcp连接,显示http头部信息(比如http协议版本号,状态码等)</p> <p>http/1.1:支持长连接(连接保持,持久连接);支持管道机制(同时发送多个http请求)</p> <p>http/2.0:支持长连接;支持完全多路复用(同时发送多个请求);支持网页头部压缩;支持服务端主动推送;二进制传输</p> <p>5.http方法</p> <p>GET           发送查询请求获取网页资源</p> <p>PUT           提交数据,修改数据</p> <p>DELETE     删除资源</p> <p>POST         提交数据,插入添加数据</p> <p>HEAD         请求网页的首部信息</p> <p>6.HTTP协议报文格式</p> <p>请求报文:请求行(http请求方法,URL路径,协议版本)请求头  请求体</p> <p>响应报文:响应行(协议版本,响应状态码) 响应头 响应体</p> <p>7.响应状态码</p> <p>请求正常的:2xx   3xx</p> <p>请求异常的:4xx   5xx</p> <p>200            一切正常<br> 301            永久重定向<br> 302            临时重定向<br> 401            用户名或密码错误<br> 403            禁止访问(客户端IP地址被拒绝)<br> 404            请求的文件不存在<br> 414            请求URI头部过长<br> 500            服务器内部错误<br> 502            无效网关<br> 503            当前服务不可用<br> 504            网关请求超时</p> </div> </div> </li> <li class="list-group-item ul-li"> <b>相关阅读:</b><br> <nobr> <a href="/Article/Index/1222748">redis(2)概述与安装</a> <br /> <a href="/Article/Index/1474535">【算法】区间调度算法</a> <br /> <a href="/Article/Index/847447">虎牙、斗鱼的变现困顿</a> <br /> <a href="/Article/Index/1206626">基于频谱的GCN的数学原理</a> <br /> <a href="/Article/Index/1165975">翌加科技:教抖音小店商家采取措施避免售后争议</a> <br /> <a href="/Article/Index/1349651">Flink学习笔记(二):Flink内存模型</a> <br /> <a href="/Article/Index/1333073">Spring Framework 学习笔记5:事务</a> <br /> <a href="/Article/Index/868959">TCP 小结</a> <br /> <a href="/Article/Index/651426">强烈推荐十几款IDEA开发必备的插件</a> <br /> <a href="/Article/Index/874532">外贸怎么在谷歌搜索客户?</a> <br /> </nobr> </li> <li class="list-group-item from-a mb-2"> 原文地址:https://blog.csdn.net/haoqingyu_/article/details/133736692 </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>