[Linux] Web基础知识与http协议

一、HTML

    1.1 HTML 的概念

HTML被称为超文本标记语言。 它是规范和标准. 它通过标记符号来标记网页中出现的各个部分。网页文件本身就是一种文本文件。 通过向文本文件添加标记,您可以告诉浏览器如何显示其中的内容。 HTML命令可以描述文本、图形、动画、声音、表格、链接等。 HTML文件可以使用任何可以生成txt文件的文本编辑器进行编辑生成超文本标记语言文件,只需将文件名的后缀改为""即可。html"或"。"htm"就足够了。

1.2 HTML的基本标签

HTML标签采用双标记符的形式,前后标记符对应,分别表示标记开始和结束,标记符中间的内容被标签描述。前标记符由“< XXX>”表示,结尾标记符多了一个“/”,由“< /XXX>”表示。

1.3 HTML的文件结构 

 HTML文件最外层由< html> < /html>表示,说明该文件是用HTML语言描述的。在它里面是并列的头标签(< head>)和内容标签(< body>)。

格式:<html><head>网页的头部信息</head><body>网页内容</body></html>
HTML的标签
body外标签作用
< title>定义了文档的标题
< base>定义了页面链接标签的默认链接地址
< link>定义了一个文档和外部资源之间的关系
< meta>定义了HTML文档中的元数据
< script>定义了客户端的脚本文件
< style>定义了HTML文档的样式文件
body内标签作用
< table>定义一个表格
< tr>定义了表格中的一行
< td>定义了表格中某一行的一列
< img>定义了一个图像
< a>定义了一个超链接
< p>定义了一行
< br>定义了换行
< font>定义了字体

二、静态网页和动态网页

  2.1 静态网页

        在网站设计中,纯HTML格式的网页通常被称为"静态网页"。 静态网页是带有文件扩展名的标准HTML文件。htm,html。静态网页是网站结构的基础。 早期的网站一般都是由静态网页构成的。

        静态网页也有各种动态效果,如:动画GIF格式、flash、滚动字幕等。这些"动态效果"是可视的,与我们将在下面介绍的动态网页是不同的概念。

        只要静态网页不改变代码,它就不会改变,每天显示的内容也是一样的。静态网页只使用html语言,而不使用任何其他高级编程语言。

2.2 动态网页

        所谓动态网页,是指与静态网页相反的一种web编程技术。对于静态网页来说,随着HTML代码的生成,除非改变了页面代码,否则页面的内容和显示效果基本不变。动态网页的情况并非如此。 页面代码未更改,但显示的内容可能会根据数据库操作的时间、环境或结果而更改。

        动态网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见网页制作格式,而是以.aspx、.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”。

        动态网页是由web编程技术生成的,它结合了Java、PHP、C#、数据库编程等HTML以外的高级编程语言和数据库技术,从这个意义上说,实现了对网站内容和风格的高效动态交互管理。 所做的一切。

三、http的相关知识 

3.1 http协议的介绍

HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。

HTTP 已经演化出了很多版本,它们中的大部分都是向下兼容的:

    http 1.0   相较以前版本可以支持POST、HEAD方法,支持HTML文件以外的其他类型,但不支持持久连接
   http 1.1   支持持久连接,即在一个TCP连接里面完成多个http请求和响应,但是每个请求和响应是按照顺序一一对应的
  http 2.0   支持完全多路复用,即不光可以在在一个TCP连接里面完成多个http请求和响应,而且请求和响应不用按照顺序一一对应。 ( 也支持压缩,服务端主动推送)
    http 3.0   基于UDP协议 ,最新版本还在初步推广中

3.2 http的方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)。每条 HTTP 请求报文都包含一个方法, 告诉服务器要执行什么动作,包括:获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST、PUT。

方法作用
GET对服务器资源获取的简单请求
PUT向服务器提交数据,以修改数据
POST用于发送包含用户提交数据的请求
DELETE删除服务器上的某些资源
HEAD请求页面的首部,获取资源的元信息
CONNECT用于ssl隧道的基于代理的请求
OPTIONS返回所有可用的方法,常用于跨域
TRACE追踪 请求--响应的传输路径

1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,无论进行多少次PUT操作,其结果并没有不同。

3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,几乎目前所有的提交操作都是用POST请求的。

4、DELETE请求顾名思义,就是用来删除某一个资源的。

3.3 GET与POST的比较

GET 方法

        从指定的服务器上获得数据

        GET请求能被缓存

         GET请求会保存在浏览器的浏览纪录里

        GET请求有长度的限制

         主要用于获取数据

         查询的字符串会显示在URL后缀中,不安全

POST 方法

         提交数据给指定服务器处理

         POST请求不能被缓存

         POST请求不会保存在浏览器的浏览纪录里

         POST请求没有长度限制

         查询的字符串不会显示在URL 

3.4 http状态码

HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL 时, 服务器根据处理情况返回相应的处理状态。

通常正常的状态码为2xx,3xx(如200),如果出现异常会返回4xx,5xx(如404)。

状态码首位范围含义
1xx100-101信息提示
2xx200-206成功
3xx300-305重定向
4xx400-415客户端错误
5xx500-505服务器错误

  常用状态码的具体含义: 

状态码含义
200一切正常
301永久重定向
302临时重定向
401用户名或密码错误
403禁止访问(客户端IP地址被拒绝)
404请求的文件不存在
414请求URL头部过长
500服务器内部错误。比如脚本错误,编程语言语法错误
502无效网关
503当前服务不可用。web服务器不能处理HTTP请求,可能是临时超载或者是服务器进行停机维护。
504网关请求超时。程序执行时间过长导致响应超时,例如程序需要执行20秒,而nginx最大响应等待时间为10秒,这样就会出现超时。

产生502(无效网关)的原因:

1、数据包没有送到网卡,网络问题;

2、数据包送进去了(交换机能抓到包),但是网卡没收到,网卡问题或防火墙问题;

3、网卡接收到了,处理不了,服务问题。(比如服务器当前连接太多,响应太慢;页面素材太多,带宽不够。)

3.5 http的请求过程

用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

请求消息的4个部分:

请求行:请求行由3部分组成:请求方法、URL和协议版本。

请求标头:请求标头为请求消息添加了一些附加信息,并由名称和值之间用冒号分隔的"名称/值"对组成。

空行:请求头末尾的空行表示请求头的结尾,后跟请求体。 这条线是非常重要和不可或缺的。

请求体:请求体是发送请求的参数。 GET方法已经在URL中指定了参数,因此在提交时没有数据。POST方法发送的参数在请求体中。

请求头描述
Host接受请求的服务器地址,可以是 IP:端口号 ,也可以是域名
User-Agent发送请求的应用程序名称
Connection指定与连接相关的属性,如Connection:Keep-Alive
Accept-Charset通知服务端可以发送的编码格式
Accept-Encoding通知服务端可以发送的数据压缩格式
Accept-Language通知服务端可以发送的语言

响应报文四部分:

状态行:状态行由协议版本、状态码、状态码描述3部分组成。

响应标头:响应标头类似于请求标头,并向响应消息添加一些附加信息。

空行:响应头的末尾有一个空行,用来表示响应头的结尾。

响应体:从服务器返回的相应HTML数据被浏览器解析以显示页面。 

响应头描述
Server服务器应用程序软件的名称和版本
Content-Type响应正文的类型(是图片还是二进制字符串)
Content-Length响应正文长度
Content-Charset响应正文使用的编码
Content-Encoding响应正文使用的数据压缩格式
Content-Language响应正文使用的语言

3.6  HTTP访问的过程

关于TCP的三次握手与四次挥手,请转到以下博客

[网络]传输层协议-CSDN博客

HTTP访问的过程:

  1. 建立连接:客户端发起与服务器的TCP连接,通过三次握手建立可靠的通信通道。

  2. 接收请求:服务器监听到客户端发起的TCP连接,并接收到HTTP请求报文。

  3. 处理请求:服务器解析HTTP请求报文,提取请求方法、路径、头部信息等。                                            根据请求内容执行相应的服务器端处理,可能包括调用后端应用程序、查询数据库、读取文件等。

  4. 访问资源:服务器根据请求访问相应的资源,如HTML文件、图像、数据库等。

  5. 构建响应报文:服务器生成HTTP响应报文,包括状态码、响应头部和响应体。

  6. 发送响应报文:服务器通过之前建立的TCP连接将HTTP响应报文发送回客户端。

  7. 记录日志:服务器记录访问日志,包括客户端IP地址、访问时间、请求方法、请求路径、HTTP状态码等信息。

1、客户端通过域名进行访问,先进行DNS域名解析。

2、之后客户端请求与web服务器建立TCP连接(三次握手)。

3、建立连接后,客户端向web服务器发送一个HTTP请求。

4、服务器响应HTTP请求,客户端的浏览器得到HTML代码。

5、浏览器解析HTML代码,并请求HTML代码中的资源。(浏览器拿到HTML文件后,开始解析HTML代码,遇到静态资源时,就向服务器去请求下载。)

6、断开TCP连接(四次挥手),浏览器对页面进行渲染呈现给用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/211206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

讲解把一个文件夹里面的内容复制到另一个文件夹中的操作

&#x1f38a;专栏【Java小练习】 &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;需求⭐思路✨代码✨效果 &#x1f384;如果要复制…

Vue3:表格单元格内容由:图标+具体内容 构成

一、背景 在Vue3项目中&#xff0c;想让单元格的内容是由 &#xff1a;图标具体内容组成的&#xff0c;类似以下效果&#xff1a; 二、图标 Element-Plus 可以在Element-Plus里面找是否有符合需求的图标iconfont 如果Element-Plus里面没有符合需求的&#xff0c;也可以在这…

MySQL 数据库操作指南:LIMIT,OFFSET 和 JOIN 的使用

限制结果 您可以通过使用"LIMIT"语句来限制查询返回的记录数量。以下是一个示例&#xff0c;获取您自己的Python服务器中"customers"表中的前5条记录&#xff1a; import mysql.connectormydb mysql.connector.connect(host"localhost",user&…

Proteus仿真--基于NM24C08的EEPROM仿真设计

本文介绍基于NM24C08的EEPROM仿真设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 其中NM24C08是标准的2线总线接口的串行EEPROM&#xff0c;开机画面在LCD12864上显示 仿真图如下 仿真运行视频 Proteus仿真--基于NM24C08的EEPROM仿真设计 附完整Proteus仿真资料…

零一万物模型折腾笔记:官方 Yi-34B 模型基础使用

当争议和流量都消失后&#xff0c;或许现在是个合适的时间点&#xff0c;来抛开情绪、客观的聊聊这个 34B 模型本身&#xff0c;尤其是实践应用相关的一些细节。来近距离看看这个模型在各种实际使用场景中的真实表现和对硬件的性能要求。 或许&#xff0c;这会对也想在本地私有…

Docker本地部署Drupal内容管理框架并实现公网远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址7. 结语 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。它…

bat脚本之findstr

findstr 是 Windows 操作系统中用于文本搜索的命令&#xff0c;它可以在文件中查找指定的字符串或正则表达式&#xff0c;并输出匹配的行或行号。findstr 命令可以在命令提示符下直接使用&#xff0c;也可以在批处理脚本中嵌套使用。 以下是 findstr 命令的基本语法&#xff1…

使用条件格式突出显示单元格数据-sdk

使用条件格式突出显示单元格数据 2023 年 12 月 6 日 根据数据值将视觉提示应用于特定单元格、行或列&#xff0c;从而更轻松地识别模式和趋势。 网格中的条件格式允许用户根据单元格或范围包含的数据将视觉样式应用于单元格或范围。它通过以数据驱动的方式突出显示关键值、异常…

【基于Python的二手车数据可视化平台的设计与实现】

基于Python的二手车数据可视化平台的设计与实现 前言数据获取与处理网络爬虫数据存储 可视化平台的设计与实现Flask框架数据可视化 创新点结语 前言 随着社会的不断发展&#xff0c;二手车市场也逐渐成为一个备受关注的领域。为了更好地为二手车的买家和卖家提供信息&#xff…

Python 实现全连接攻击-1

实现或讨论如何实现网络攻击&#xff0c;包括全连接攻击&#xff08;一种形式的拒绝服务攻击&#xff09;&#xff0c;是不合适的&#xff0c;也违反了伦理和法律规定。无论是学术研究、安全测试还是其他目的&#xff0c;未经授权对网络或系统进行攻击都是非法和不道德的。 如…

计算和传输背后的时空观

吞吐和速度(率)经常被混淆&#xff0c;当提到 100Gbps 网卡时&#xff0c;“它很快” 的意义可能只是 “它很多” 100Gbps 指 1s 内发送的比特数为 100G&#xff0c;如果在这 1s 内塞入更多比特&#xff0c;以下是两种方式&#xff1a; 显然&#xff0c;上面是更多&#xff…

安全防御–

安全防御 ASPF技术## FTP协议主机之间传输文件是IP网络的一个重要功能&#xff0c;如今人们可以方便地使用网页、邮箱进行文件传输。然而在互联网早期&#xff0c;Web&#xff08;World Wide Web&#xff0c;万维网&#xff09;还未出现&#xff0c;操作系统使用命令行的时代&a…

iOS分段控件UISegmentedControl使用

在故事板中添加UISegmentedControl 具体添加步聚如下: 选择Xcode的View菜单下的Show Library (或者Shift+Common+L) 打开控件库如下 在控件库中输入seg搜索控件,在出现Segmented Control后,将其拖到View Controller Scene中 到这里,添加分段控件UI已完成, 接下来将控件与变量…

shell的变量

Linux 系统中 shell 变量的使用 文章目录 &#xff08;1&#xff09;简介&#xff08;2&#xff09;变量分类&#xff08;3&#xff09;变量赋值&#xff08;4&#xff09;变量命名&#xff08;5&#xff09;变量引用&#xff08;6&#xff09;变量清除&#xff08;7&#xff0…

基于JavaWeb+SSM+Vue马拉松报名系统微信小程序的设计和实现

基于JavaWebSSMVue马拉松报名系统微信小程序的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.…

WPF仿网易云搭建笔记(0):项目搭建

文章目录 前言项目地址项目Nuget包搭建项目初始化项目架构App.xaml引入MateralDesign资源包 项目初步分析将标题栏去掉DockPanel初步布局 资源字典举例 结尾 前言 最近在找工作&#xff0c;发现没有任何的WPF可以拿的出手的工作经验&#xff0c;打算仿照网易云搭建一个WPF版本…

Numpy 实现基尼指数算法的决策树

基尼系数实现决策树 基尼指数 Gini ⁡ ( D ) 1 − ∑ k 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 \operatorname{Gini}(D)1-\sum_{k1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} Gini(D)1−k1∑K​(∣D∣∣Ck​∣​)2 特征 A A A条件下集合 D D D的基尼指数&#xff1a; Gi…

使用ssm框架进行mapper或者service单纯测试时报错问题处理

问题 使用注解方式配置好ssm后&#xff0c;无法在测试中单独测试mapper层和service层。效果如下&#xff1a; 解决 关闭配置类中的EnableWebMvc 再次运行&#xff0c;即可完成测试。

【SpringBoot篇】5种类型参数传递json数据传参的操作

&#x1f38a;专栏【SpringBoot】 &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f33a;普通参数&#x1f33a;POJO参数&#x1f33a;嵌套…

uniapp切换页面时报错问题

我们来看如下错误&#xff1a; 该错误的意思是不能切换到 tabbar 页面。tabbar页面通常是公共页面或者底部导航栏&#xff0c;如果我们用 navigateTo 或者 redirectTo 都不能实现页面切换。 我们有两种方式&#xff1a; 第一种是用 switchTab 来进行切换&#xff0c;但注意切…