Web基础与HTTP协议

目录

一、DNS和域名

1.域名概述

1.1域名小结

2.DNS解析

二、网页

1.网页的定义

1.1URL(一种万维网寻址系统)

2.HTML

2.1文档的结构

2.2标题标签类型

三、Web(万维网)

1.基本概念

2.主要组成部分

3.工作原理

4.静态页面

5.动态页面

6.拓展

四、HTTP协议

1.基本概念

2.工作原理

3.不同的版本

3.1扩展

4.HTTP请求格式

4.1GET方式

4.2PST方式

5.cookie和session

5.1cookie

5.2session

6.HTTP状态码


一、DNS和域名

1.域名概述

(1)网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的 IP 地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相 连的网络和主机时,均采用一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址
(2)为了保证网络上每台计算机的 IP 地址的唯 一性,用户必须向特定机构申请注册,分配 IP 地址网络中的地址方案分为两套:IP 地址系统和域名地址系统。这两套地址系统其实是一一对应的关系由于IP 地址是数字标识,使用时难以记忆和书写,因此在 IP 地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP 地址

1.1域名小结

(1)网络上交互是基于 TCP/IP 协议的,每个主机在逻辑上有一个唯一位置标识( IP地 址),物理地址为MAC地址
(2)为了保证地址唯一性,用户协议向特地给机构申请注册,分配 IP 地址网络中的地址有两套方案:
① IP 地址系统
② 域名地址系统
由于 IP 是由 32 位二进制数字标识,不方便记忆,所以 以 IP 地址为基础发展出了符号化地址来代替解决方案,也是是域名

2.DNS解析

DNS 解析的 三种方式 :
① /etc/hosts
linux 系统中负责快速解析的文件,包含了 ip 与主机名的映射关系,在没有 DNS 服务器的情况下,使用本地/etc/hosts 完成解析 / 映射,实现快速访问
PS: 主要用于主机之间( IP 和主机名)的映射 / 解析关系,示例:
172.16.58.10 master
172.16.58.20 node1
172.16.58.30 node2
② /etc/resolv.conf
DNS 客户端配置文件,主要用于设置 DNS 服务器的 IP 和域名,还包含了主机域名的搜索顺序等等,这个文件是由域名解析器(resolver 一个根据主机名解析 IP 地址的库)使用的配置文件
PS: 主要用与匹配 DNS 服务器,示例:
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 218.2.135.1
③ /etc/sysconfig/network-scripts/ifcfg-ens33
我们也可以在网卡配置文件中定义 DNS1、DNS2
生效顺序
hosts 文件------ 网卡配置文件------ /etc/resolv.conf

总结 :以上内容只是略微回顾,详细解释请查看以往博客http://t.csdnimg.cn/8O3pu

二、网页

1.网页的定义

网页(Web Page)

是在互联网上发布的单个文档(纯文本格式文件),通常以HTML(HyperText Markup Language)格式编写。每个网页都有一个唯一的URL(Uniform Resource Locator),用于定位和访问

1.1URL(一种万维网寻址系统)

URL: Uniform Resorce Locator
统一资源定位符,用于描述某服务器某特定资源位置
URI: Uniform Resource Identifier
统一资源标识,分为 URL 和 URN
URN: Uniform Resource Naming
统一资源命名, 这个资源叫什么具体的名字

2.HTML

是一种标记语言,用于定义网页的结构。HTML使用标签来标记不同类型的内容,使浏览器能够正确解析和显示网页

2.1文档的结构

HTML 网页
头部部分
标题部分
主体部分
网页内容(文本、图像等)
<html>
<head>
<title> 我的第一个网页 </title>
</head>
<body >
Hello World!
</body>
</html>

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

2.2标题标签类型

行控制相关标签
范围标签
图像标签
超链接标签
特殊符号

三、Web(万维网)

1.基本概念

是一个由互联网上的各种网站和网页组成的系统。它利用超文本和超链接技术,将信息连接在一起,允许用户轻松浏览和检索数据
万维网是一个分布式的超媒体系统,是超文本系统的扩充,基于B/S 架构实现

2.主要组成部分

网页(Web Page)

是Web的基本单位,由HTML(超文本标记语言)编写,显示在浏览器中。网页可以包含文本、图像、视频、音频和其他多媒体内容
网站(Website)

是由多个相关网页组成的集合,通常有一个主页面(主页)和多个子页面。网站通过统一的域名访问
Web服务器

是存储和管理网页文件的计算机系统。它响应用户的请求,并将相应的网页内容发送到用户的浏览器
Web浏览器

是用于访问和显示网页的软件,例如Google Chrome、Mozilla Firefox、Safari和Microsoft Edge。浏览器解析HTML、CSS和JavaScript代码,并呈现网页内容

3.工作原理

(1)用户请求

当用户在浏览器中输入一个URL或点击一个链接时,浏览器会向Web服务器发送HTTP请求

(2)服务器响应

Web服务器接收到请求后,处理该请求,并将请求的网页内容(如HTML文件)发送回浏览器

(3)页面渲染

浏览器接收到网页内容后,解析HTML代码,应用CSS样式,并执行JavaScript代码最终将网页显示给用户

4.静态页面

定义:

静态页面是预先生成并存储在服务器上的固定内容的网页。每次用户请求这个页面时,服务器都会返回相同的内容

特点:

1.固定内容:内容在创建时确定,不会随用户的交互或数据变化而变化

2.速度快:由于不需要服务器端处理或数据库查询,静态页面加载速度通常较快

3.安全性高:因为没有后台代码执行或数据库交互,静态页面相对更不容易受到攻击

4.简单维护:适合展示不经常更新的内容,如企业简介、联系方式等

5.动态页面

定义:

动态页面是在用户请求时由服务器生成的网页,其内容根据用户的请求或数据变化而变化
特点:

1.内容动态生成:页面内容可以根据用户输入、数据库查询或其他数据源动态生成和更新

2.交互性强:可以根据用户的操作(如表单提交、按钮点击)做出相应的响应和反馈

3.灵活性高:可以实现更复杂的功能,如用户登录、购物车、个性化推荐等

6.拓展

Web1.0
以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容
这个过程是网站到用户的单向行为
Web1.0: 以静态、 单向阅读为主
Web2.0
更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与
Web2.0:用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户

四、HTTP协议

1.基本概念

HTTP (超文本传输协议 HyperText Transfer Protocol )协议是互联网上应用最为广泛的一种网络协议,它是基于TCP 协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则
HTTP/HTTPS 是应用层上的协议,建立在传输层 TCP 之上,客户端通过与服务端进行 TCP 连接 ( 三次握手) ,之后发送 HTTP 请求与接收 HTTP 响应都是通过访问 Socket 接口来调用 TCP 协议实现
HTTP 是一种无状态 (stateless) 协议 , HTTP 协议本身不会对发送过的请求和相应的通信状态进行持久化处理(存储,保存)。这样做的目的是为了保持HTTP 协议的简单性,从而能够快速处理大量的事务 , 提高效率

2.工作原理

1.客户端发出请求

用户在浏览器中输入URL或点击链接时,浏览器会向服务器发送一个HTTP请求
2.服务器处理请求

服务器接收到请求后,处理该请求(如查找请求的资源、运行后台程序等)
3.服务器响应客户端

服务器处理完请求后,将相应的数据(如HTML文档、图片、JSON数据等)发送回客户端
4.客户端显示响应

浏览器接收到服务器的响应后,解析并显示数据给用户

3.不同的版本

HTTP/0.9: 已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持POST 方法,所以客户端无法向服务器传递太多信息
HTTP/1.0: 这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中
HTTP/1.1: 引入了持久连接,即 TCP 连接默认不关闭,可以被多个请求复用,能很好地配合代理服务器工作。还支持管道方式机制,即在同一 个 TCP 连接里面,客户端可以同时发送多个请求,以便降低线路负载,提高传输速度
HTTP/2.0: 完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序 对应。引入了头信息压缩机制,使用 gzip 或 compress 压缩后再发送。支持服务端推送,允许服务器未经请求,主动向客户端发送资源

3.1扩展

1.持久连接

HTTP1.0中每次请求都需要在请求头中加上connection: keep-alive来指示服务器不断开连接。而HTTP1.1中默认为持久连接,不需要再加上这个头
2.分块传输编码

HTTP1.1中支持分块传输编码(chunkedtransferencoding),可以将数据分成多个块传输,避

免了等待整个响应全部到达之后才开始渲染页面的问题
3.缓存处理

HTTP1.1中使用更多的缓存策略,有强缓存和协商缓存两种。HTTP1.0只有强缓存
4.虚拟主机

HTTP1.1支持虚拟主机,可以在同一IP地址下使用多个域名。HTTP1.0不支持虚拟主机
5.状态码

HTTP1.1将状态码增加到了101、201、202、203、204、205、206和307等状态
6.传输编码

HTTP1.1中新增了一种传输编码:gzip。可以使用gzip来压缩传输内容,减少传输数据量,提高传输速度
总结

HTTP1.1相对于HTTP1.0来说是更加高效、灵活、安全的,但对于一些老旧的浏览器或服务器,HTTP1.0仍然是必要的

4.HTTP请求格式

4.1GET方式

从指定的服务器上获得数据
GET 请求能被缓存
GET 请求会保存在浏览器的浏览纪录里( cookit )
GET 请求有长度的限制
主要用于获取数据
查询的字符串会显示在 URL 中,不安全
① 请求行
请求的方式
请求的资源路径
请求的版本协议号
② 请求头(描述信息 / 标准化信息)
Accept: 客户端可以接受的数据类型
Accept-Language: 客户端可以接受的语言类型
User-Agent: 浏览器的信息
Accpect-Encoding: 客户端可以接受的编码格式
Host: 表示请求的ip和端口号
Connection: 告诉服务器请求连接如何处理
Keep-Alive: 通知服务器回传数据不要马上关闭,保持一小段的连接
Closed: 马上关闭

4.2PST方式

提交数据给指定服务器处理
POST 请求不能被缓存
POST 请求不会保存在浏览器的浏览纪录里
POST 请求没有长度限制
查询的字符串不会显示在 URL 中,比较安全
① 请求行
请求的方式
请求的资源路径
请求的协议的版本号
② 请求头
Accept: 客户端可以接受的数据类型
Accept-Language: 客户端可以接受的语言类型
Referer: 表示请求发起时,浏览器地址栏中的地址
User-Agent: 浏览器的信息
Content-Type: 发送的数据类型
Content-Length: 发送的数据长度
③ 请求体:就是发送给服务器的数据

5.cookie和session

5.1cookie

定义:

Cookie是存储在用户浏览器中的一小段文本数据,用于在同一个网站的不同请求之间保持状态

工作原理:
1.服务器发送Cookie

当用户首次访问网站时,服务器会生成一个Cookie并发送给用户的浏览器。这个Cookie包含一些小型数据,比如用户ID、登录状态等
2.浏览器保存Cookie

浏览器接收到Cookie后,会将其保存下来,并在后续访问该网站时自动发送回服务器
3.浏览器发送Cookie

用户再次访问同一个网站时,浏览器会自动将之前保存的Cookie发送给服务器
4.服务器读取Cookie

服务器接收到Cookie后,可以读取其中的数据来识别用户,并根据需要返回相应的内容

特点:
1.存储在客户端

Cookie存储在用户的浏览器中,可以在多个请求之间保持状态
2.大小限制

单个Cookie的大小通常限制在4KB以内,且每个域名最多存储20个Cookie
3.安全性

Cookie 可以被用户查看和修改,因此存储敏感信息时需要谨慎

5.2session

定义:

Session是存储在服务器上的一个数据结构,用于保存用户的状态和信息。Session依频于SessionlD来识别用户

工作原理:
1.用户请求服务器

当用户首次访问网站时,服务器会为该用户创建一个唯一的Session lD,并生成一个对应的Session对象来存储用户信息
2.服务器发送Session ID

服务器将Session ID发送给用户的浏览器,通常通过设置一个Cookie来保存这个Session lD
3.浏览器保存Session ID

浏览器将Session ID保存下来,并在后续请求中自动发送回服务器
4.浏览器发送SessionlD

用户再次访问同一个网站时,浏览器会自动将Session ID发送给服务器
5.服务器读取SessionID

服务器接收到SessionID后,会根据该ID找到对应的Session对象,读取或修改其中的数据

特点:
1.存储在服务器端

Session数据存储在服务器上,更加安全,不容易被用户查看和篡改
2.大小不受限制

因为Session数据存储在服务器上,可以存储更多的信息。
3.生命周期

Session通常有一个默认的过期时间,如果用户在一定时间内没有活动,Session会自动失效

|---------|----------------|-------------------|
| 特点 | Cookie | Session |
| 存储位置 | 客户端浏览器 | 服务器 |
| 安全性 | 较低,数据容易被查看和篡改 | 较高,数据存储在服务器,不易被篡改 |
| 数据大小限制 | 每个Cookie限制为4KB | 没有严格限制 |
| 数据存储时效性 | 可以设置过期时间 | 一般有默认的会话时长 |
| 适用场景 | 保存用户偏好、跟踪用户行为等 | 保存用户登录状态、用户会话数据等 |

6.HTTP状态码

当使用浏览器访问某一个 URL ,会根据处理情况返回相应的处理状态

|-----|----------------------------------------|
| 1XX:信息响应 ||
| 100 | continue:表示服务器已经接收到请求头,并且客户端可以继续发送请求主体 |
| 101 | Switching Protocols:表示服务器同意客户端的协议切换请求 |

|-----|------------------------------|
| 2XX:成功 ||
| 200 | OK:请求成功,并且服务器返回所请求的数据 |
| 201 | Created:请求成功,并且服务器创建了新的资源 |
| 202 | Accepted:请求已经接受,但尚未处理 |
| 204 | No content:请求成功,但服务器没有返回任何内容 |

|-----|-----------------------------------------------------------|
| 3XX:重定向 ||
| 301 | Moved Permanently:请求的资源已永久移动到新位置,未来的请求应使用新的URL(请求的永久页面跳转) |
| 302 | Found:请求的资源临时移动到新位置,客户端应继续使用原有的URI |
| 304 | Not Modified:资源未修改,客户端可以继续使用缓存的版本 |

|-----|------------------------------|
| 4XX:客户端错误 ||
| 400 | Bad Request:服务器无法理解请求,由于语法错误 |
| 401 | Unauthorized:请求需要用户认证 |
| 403 | Forbidden:服务器理解请求,但拒绝执行 |
| 404 | Not Found:服务器找不到请求的资源 |
| 405 | Method Not Allowed:请求方法被禁止 |

|-----|-----------------------------------------------------|
| 5XX:服务器错误 ||
| 500 | Internal server Error:服务器遇到错误,无法完成请求(内部服务器错误) |
| 501 | Not lmplemented:服务器不支持请求的方法 |
| 502 | Bad Gateway:作为网关或代理的服务器收到无效响应(无效网关) |
| 503 | Service Unavailable:服务器当前无法处理请求(可能因为过载或维护)(当前服务不可用) |
| 504 | Gateway Timmeout:作为网关或代理的服务器没有及时从上游服务器收到响应(网关请求超时) |

生产环境常见的 HTTP 状态码
200、301、403、404、500、502、503、504
状态码大全地址:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status

相关推荐
田三番13 小时前
使用 vscode 简单配置 ESP32 连接 Wi-Fi 每日定时发送 HTTP 和 HTTPS 请求
单片机·物联网·http·https·嵌入式·esp32·sntp
dulu~dulu13 小时前
查缺补漏----用户上网过程(HTTP,DNS与ARP)
网络·网络协议·http
丶213614 小时前
【网络】HTTP(超文本传输协议)详解
网络·网络协议·http
binqian18 小时前
【k8s】ClusterIP能http访问,但是不能ping 的原因
http·容器·kubernetes
MetaverseMan20 小时前
http防抖和ws防抖
网络·网络协议·http
暂时先用这个名字1 天前
常见 HTTP 状态码分类和解释及服务端向前端返回响应时的最完整格式
前端·后端·网络协议·http·状态码·国产化·响应
圈圈的熊2 天前
HTTP 和 HTTPS 的区别
前端·网络协议·http·https
这题怎么做?!?2 天前
【Linux】网络编程:实现一个简易的基于HTTP协议格式、TCP传输的服务器,处理HTTP请求并返回HTTP响应;GET方法再理解
linux·服务器·c语言·网络·c++·tcp/ip·http
小兔子酱#2 天前
【Linux 26】应用层协议 - HTTP
linux·运维·服务器·网络·网络协议·http
Amagi.3 天前
HTTP返回码和其含义
网络·网络协议·http