【web基础与HTTP协议】

文章目录

  • 一、DNS与域名
    • 域名
      • 1. 域名概述
      • 2. 域名定义
      • 3. 域名结构
      • 4. 域名注册
      • 5.域名总结
    • DNS
      • 1.DNS解析过程
      • 2.DNS解析方式
  • 二、HTML
      • 1. HTML概述
      • 2. HTML结构
  • 三、web
      • 1. web概述
      • 2. web 1.0 和web 2.0
      • 3. 静态页面和动态页面的概述
          • 静态页面:
          • 动态页面:
      • 4. 静态页面和动态页面的特点
          • 静态页面:
          • 动态页面:
      • 5.静态页面和动态页面的定义
          • 静态页面:
          • 动态页面:
  • 四、HTTP
      • 1. HTTP协议概述
      • 2. cookie和session扩展
      • 3.HTTP协议的版本以及区别
          • HTTP 0.9:已过时
          • ⭐HTTP 1.0:
          • ⭐HTTP 1.1
        • 3.1 区别
      • 4. HTTPS协议
      • 5. HTTPS特点
      • 6. SPDY协议
      • 7. HTTP2协议
          • HTTP2.0和SPDY区别:
      • 8. HTTP请求格式( GET / POST 方式 )
        • 8.1 GET方式
        • 8.2 POST方式
        • 8.3 对GET和POST的理解
      • 9.HTTP状态码

一、DNS与域名

域名

1. 域名概述

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

2. 域名定义

定义: 标识一组主机并提供它们的有关信息的树形结构(主要确定了根在哪,就可以确定每个分支)
www.baidu.com
域名服务器(分布式,每台主机维护一个部分):
① 保持和维护域名空间的程序
② 响应解析器的请求

解析端(客户端)
向DNS服务器发出请求的设备

3. 域名结构

域名的结构一般由多个部分组成,包括根域名、顶级域名、二级域名、子域名、主机名;

根域名:根据 DNS 系统的安排,根域名没有名称,用一个点号(.)表示。根域名是整个域名结构的起点和顶级域名的顶级。因此,任何一个域名的最后一个点号前面的部分都不能是根域名;

顶级域名:顶级域名是域名结构中最高层的部分;顶级域名一般分为两种类型:国际顶级域名和国家顶级域名)。国际顶级域名是没有特定的地理区域限制的顶级域名,例如 “.com”、“.org”、“.net"等;而国家顶级域名是特定国家或地区的顶级域名,例如 “.cn”、”.jp"、".uk"等;

二级域名:二级域名是紧跟在顶级域名后面的部分,是域名结构中第二层的部分,其作用是为特定领域或品牌提供一个独立和易于记忆的网址。例如,在 baidu.com 中,"baidu"就是二级域名;

子域名:子域名是二级域名下的一级域名,用来进一步分类管理网站。例如,在 news.baidu.com 中,“news”就是子域名;

主机名:主机名是指域名中最低一级的部分,通常指的是一个网络设备或服务器的名称,例如在 www.baidu.com 中,“www”就是主机名。

4. 域名注册

  1. 选择域名:首先需要选择一个域名。

  2. 查询域名是否被注册:在选择好域名之后,需要查询该域名是否已经被注册。

  3. 选择注册商:选择一个可信赖的注册商,并了解其收费标准、域名管理功能等信息。

  4. 提交注册申请:填写注册申请表格并提交到所选注册商处,同时需提供必要的信息。

  5. 支付费用:根据所选注册商的收费标准支付相应的域名注册费用。

  6. 完成注册:完成付款后,注册商将向注册者发送确认邮件,确认域名注册成功。

5.域名总结

网络通信和连接是基于 TCP/IP 协议进行的,每一台主机都有一个唯一的标识——IP 地址,用以区分网络上的所有用户和计算机。为了保证 IP 地址的唯一性,用户必须向特定机构申请注册并获得分配。IP 地址系统和域名地址系统是网络中的两套地址方案,且其是一一对应的关系。

IP 地址方案是数字标识,使用时难以记忆和书写,因此发展出了一种符号化的地址方案,即域名地址。域名地址是基于 IP 地址之上而建立的,将 IP 地址转换成容易理解、记忆和书写的名称。一个域名可以包含多个等级,一般由主机名、二级域名和顶级域名组成。

总之,IP 地址和域名地址都是网络通信和连接的重要组成部分。IP 地址是确保网络上每台计算机唯一性的基础,而域名地址则是为了方便用户记忆、书写和访问网站而产生的一种符号化地址方案。无论是使用 IP 地址还是域名地址,都需要遵守相关规定和申请程序,确保其合法性和可靠性。

域名是指用于网站和电子邮件等互联网服务的地址命名系统。它是互联网中最基本的标识之一,也是人们访问网站、发送电子邮件等互联网活动的入口。

域名一般由多个部分组成,包括顶级域名、二级域名和三级域名等。例如,在“www.baidu.com”这个域名中,“com”是顶级域名,“baidu”是二级域名,“www”则是三级域名。

DNS

1.DNS解析过程

  1. DNS解析是指将域名转换为IP地址的过程。当我们在浏览器中输入网址时,浏览器会首先发送一个DNS查询请求到DNS服务器,以获取对应网址的IP地址。DNS解析的过程包括以下几个步骤:
    浏览器首先会查找本地DNS缓存是否存在该域名的解析结果。如果存在,则直接返回对应的IP地址;否则,会向本地DNS服务器发起解析请求。

  2. 如果本地DNS服务器中没有该域名的IP地址记录,它会向根DNS服务器发起查询请求,请求根DNS服务器提供某个顶级域名服务器(TLD)的IP地址。

  3. 根DNS服务器通常不直接提供域名解析服务,而是返回给本地DNS服务器某个顶级域名服务器的IP地址。本地DNS服务器接下来会向该顶级域名服务器发送查询请求。

  4. 顶级域名服务器会根据查询请求返回该域名的权威DNS服务器的地址。权威DNS服务器记录着该域名下所有主机的IP地址。

  5. 本地DNS服务器向权威DNS服务器发起查询请求,请求获取该域名下主机的IP地址。

  6. 权威DNS服务器根据查询请求返回该域名对应的IP地址,并将该解析结果返回给本地DNS服务器。

  7. 本地DNS服务器收到解析结果后,将该结果缓存,并将解析结果返回给浏览器,浏览器便可以通过IP地址访问对应的网站。

2.DNS解析方式

① /etc/hosts
linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,使用本地/etc/hosts完成解析/映射,实现快速访问
PS: 主要用于主机之间(IP和主机名)的映射/解析关系,示例:
192.168.226.128 master
192.168.226.129 node1
192.168.226.130 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=

生效顺序 1 hosts文件 2 网卡配置文件 3 /etc/resolv.conf

二、HTML

1. HTML概述

HTML是一种超文本标记语言。它被用来描述网页的结构和内容,并通过标记来定义网页中各个元素的含义和属性。HTML的主要作用是搭建Web页面的骨架,其中包括文字、图片、视频、音频等等。同时,HTML支持链接、表单、表格、列表等功能,还可以通过CSS和JavaScript进行样式和交互的设计。

2. HTML结构

HTML标记由两个尖括号组成,如 、、

等。 一般来说,HTML文档的结构分为头部(head)和主体(body)两部分。头部包含文档的元数据,如文档的标题、编码方式、关键字、作者等信息。 主体包含文档的内容,如文字、图片、链接等。

示例




示例 




       Hello World!



三、web

1. web概述

Web(全球广域网)是指一种以超文本标记语言(HTML)为基础、通过互联网进行信息发布和交流的系统。它是目前最为广泛使用的互联网服务之一,人们可以通过Web访问各种网站、搜索资料、在线购物和社交等。

Web的基础技术有三种:超文本传输协议HTTP、超文本标记语言HTML和统一资源定位符URL。除此之外,还有JavaScript、CSS、Ajax等技术来实现更加丰富多样的网页设计和浏览体验。同时,类似于Web的应用服务也逐渐崛起,如电子邮件、社交媒体、在线购物、在线支付等。

URL:全球广域网使用统一资源定位符来标志万维网上的各种文档,并使每个文档在整个因特网的范围内具有唯一的标识符URL。

HTTP(80/TCP)和 HTTPS(443/TCP)的传输协议,但因特网还有其他的网络应用系统(如:FTP、SMTP等等)。

2. web 1.0 和web 2.0

  1. web 1.0:以信息发布为主,网站内容以纯文本、图片等静态信息为主,用户主要是被动接收信息,无法对信息进行互动处理。Web1.0的网站通常呈现出简单、直观、静态的特点,网站的更新周期较长,缺乏交互性和个性化。

  2. web 2.0:Web2.0的网站更加注重用户体验,以人性化、互动性、个性化为特征,用户可以通过社交媒体、博客、论坛等方式参与到网站的建设和交流中,并且能够对网站上的信息进行自由、开放的评论和反馈。Web2.0的网站还可以利用Ajax、XML、HTML5等技术来实现更丰富、更强大的交互体验,如在线编辑、视频、音频等。

总的来说,Web2.0是基于Web1.0的基础上发展起来的,它更加注重用户的参与和互动,提供更加高效、个性化的网站服务。Web2.0的发展也引领了互联网技术和应用的快速发展,对互联网产业的市场和商业模式带来了巨大的变化。

3. 静态页面和动态页面的概述

静态页面:

是指在服务器中存储的HTML文件,内容不会随着用户的请求而发生变化。这种页面一般情况下是由开发人员预先编写好,网站访问者在访问时可以直接获取到该文件并将其呈现给用户。静态页面通常具有简单、快速、安全等优点,因为它的构建过程比较简单,也不需要对数据库进行访问,所以在数据量小且访问量低的情况下使用比较合适。

动态页面:

是指可以根据用户的请求动态生成的页面。这种页面的内容是由服务器端动态生成的,可以包括来自数据库、API或其他来源的动态信息。用户每次访问页面时,页面都可能会发生变化。动态页面通常具有灵活、交互性强等特点,因为它可以让用户根据自己的需求获得不同的结果,但同时也会带来一定的安全问题以及对服务器的压力。

4. 静态页面和动态页面的特点

静态页面:
  1. 内容固定:静态页面在服务器端呈现的内容是固定的,不会根据用户的需求动态变化。

  2. 构建简单:静态页面的制作过程相对简单,只需要编写HTML、CSS和JavaScript等前端技术即可。

  3. 速度快:静态页面的加载速度较快,因为它没有与服务器的交互,用户可以更快地访问网站上的信息。

  4. 安全性高:静态页面不涉及与数据库的交互,几乎没有安全问题。

动态页面:
  1. 内容动态:动态页面的内容是通过服务器端动态生成的,能够根据用户的需求动态变化,提供个性化的访问体验。

  2. 构建复杂:动态页面的制作过程相对复杂,需要使用后端技术,如PHP、Ruby或Python等服务器端技术,同时也需要与数据库进行交互。

  3. 速度慢:动态页面的加载速度相对较慢,因为需要与服务器进行交互。

  4. 安全性低:动态页面与数据库进行交互,可能被黑客攻击,存在一定的安全隐患。

  5. 交互性:网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋

  6. 自动更新:无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量

  7. 因时因人而变:当不同的时间,不同的人访问同一网址时会产生不同的页面

5.静态页面和动态页面的定义

静态页面:
  1. 静态网页是标准的HTML文件
  2. 扩展名是.htm、.html
    例如文本、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等
  3. 是网站建设的基础,早期网站一般都由静态网页制作
  4. 没有后台数据库、不含程序和不可交互的网页
  5. 相对更新起来比较麻烦,适用于一般更新较少的展示型网站
动态页面:
  1. 网页 URL不固定,能通过后台与用户交互
  2. 在动态网页网址中有一个标志性的符号——“?”
  3. 常用的语言有PHP、JSP、Python、Ruby等

四、HTTP

1. HTTP协议概述

HTTP(超文本传输协议)协议是互联网上应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。

HTTP/HTTPS是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行TCP连接(三次握手),之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。

HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理(存储,保存)。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务, 提高效率。

2. cookie和session扩展

cookie和session都为了实现的是http的短期的持久化(内存/缓存方式,查询快、效率比较高)cookie
是缓存在用户端(client)浏览器中的(默认缓存一天),当下次客户端通过同一个浏览器访问客户端的时候,会优先读取cookie中的缓存信息,向服务端进行请求,同时服务端收到客户端请求的时候,读取到cookie文件,知道客户端之前找的是服务器A处理的任务,为了省事儿,省资源,干脆直接讲请求直接再交给服务器A处理
两者对比:
cookie 省服务器性能
session 更安全

  1. 为后面服务、集群、功能优化做铺垫
  2. 具体解释了怎么解决HTTP无状态协议的持久化/存储。

3.HTTP协议的版本以及区别

  • HTTP 0.9:已过时

1991,原型版本,功能简陋,只有一个命令GET。GET /index.html ,服务器只能回应HTML格式字符串,不能回应别的格式

  • ⭐HTTP 1.0:

1996年5月,支持cache, MIME, method

每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建 一个连接引入了POST命令和HEAD命令头信息是 ASCII 码,后面数据可为任何格式。服务器回应时会告诉客户端,数据是什么格式,即Content-Type字段的作用。这些数据类型总称为MIME 多用途互联网邮件扩展,每个值包括一级类型和二级类型,预定义的类型,也可自定义类型, 常见Content-Type值: text/xml image/jpeg audio/mp3

  • ⭐HTTP 1.1

1997年1月,引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。对于同一个域名,大多数浏览器允许同时建立6个持久连接引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率

新增方法:PUT、PATCH、OPTIONS、DELETE

同一个TCP连接里,所有的数据通信是按次序进行的。服务器只能顺序处理回应,前面的回应慢,会有 许多请求排队,造成"队头堵塞"(Head-of-line blocking)

为避免上述问题,两种方法:一是减少请求数,二是同时多开持久连接。

网页优化技巧,如合并脚本和样式表、将图片嵌入CSS代码、域名分片(domain sharding)等

HTTP 协议不带有状态,每次请求都必须附上所有信息。请求的很多字段都是重复的,浪费带宽,影响速度

3.1 区别

  1. 缓存机制
    HTTP1.0没有明确的缓存控制机制,而HTTP1.1引入了新的缓存控制手段。它增加了Cache-Control、ETag、If-Modified-Since和If-None-Match等缓存控制头部字段,使得客户端能够更好地控制缓存。

  2. 长连接
    在HTTP1.0中,每次请求建立一次连接,请求结束后连接即关闭,需要重新建立连接。HTTP1.1则引入了持久连接(也称为长连接),允许客户端和服务器在同一连接上发送多个请求和响应信息,避免了每次请求都要重新建立连接的开销,提高了性能。

  3. 带宽优化
    HTTP1.0中,每次请求和响应的数据包都会包含完整的HTTP头部信息,导致带宽浪费。而HTTP1.1中引入了chunked编码方式,能够在数据流传输的时候分块传输,减少了网络负荷和传输时间。

  4. 错误提示
    HTTP1.1对错误状态码进行了扩展,能够提供更多的错误提示信息,方便代码调试和故障排除。

总体来说,相比于HTTP1.0,HTTP1.1引入了缓存机制、持久连接、带宽优化和错误提示等新特性,提高了网络效率和响应速度,并且在应对大型网站访问压力和高并发请求方面更具优势。

4. HTTPS协议

为解决安全问题,网景在1994年创建了HTTPS,并应用在网景导航者浏览器中。 最初,HTTP是与SSL一起使用的;在SSL逐渐演变到TLS时(其实两个是一个东西,只是名字不同而已),最新的HTTPS也由在2000年五月公布的RFC 2818正式确定下来。HTTPS就是安全版的HTTP,目前大型网站基本实现全站

HTTPS

5. HTTPS特点

  1. 数据加密传输
    HTTPS使用SSL/TLS协议对数据进行加密,可以有效防止黑客窃取网站用户的敏感信息,如密码、银行卡号等。

  2. 身份认证
    HTTPS通过数字证书来验证服务器和客户端的身份信息,确保通信双方都是可信的。

  3. 信息完整性保护
    HTTPS使用消息摘要算法,对传输数据进行校验,确保信息在传输过程中没有被篡改或损坏。

  4. 支持虚拟主机
    HTTPS支持虚拟主机,多个域名可以共用同一个IP地址并使用不同的SSL证书,这提高了服务器的利用率。

6. SPDY协议

SPDY(Speedy)是Google开发的一种基于TCP的应用层协议,旨在解决HTTP1.x协议存在的一些性能瓶颈,以提高Web页面加载速度和用户体验。SPDY协议在2015年已经改名为HTTP/2。

SPDY协议与HTTP协议的主要不同在于:

多路复用
一个TCP连接可以承载多个HTTP请求和响应,而不是当前HTTP/1.x采用的每个连接只能处理一个请求和响应。

数据流优先级
客户端可以设置请求的优先级,服务器可以优先响应重要的请求,从而提高Web页面的展示速度和用户体验。

请求头压缩
SPDY协议对HTTP协议中的请求头进行了压缩,大幅减少了传输过程中的数据量,提高了页面的加载速度。

服务端推送
服务器可以在未经请求的情况下向客户端发送资源,如CSS、JS等文件,这样客户端就无需再次请求这些文件,节省了许多通信开销。

7. HTTP2协议

HTTP/2是Web通信协议HTTP的第二个主要版本。它基于已有的HTTP/1.1协议,采用了SPDY协议作为基础,对协议进行了重新设计。HTTP/2协议相比于HTTP/1.x协议,具有以下几个优势:

  1. 多路复用
    HTTP/1.x协议中,每个请求都需要建立一个连接,在传输过程中只能处理一个请求和响应,造成了很多带宽和连接浪费。而HTTP/2支持多路复用,可以在同一个TCP连接上交错地发送多个请求和响应,在同一个连接上同时处理多个请求和响应,提高了数据传输的效率。

  2. 头部压缩
    HTTP/2引入了HPACK算法,对传输中的HTTP头部进行压缩,减少了数据量,提高了效率。

  3. 服务端推送
    HTTP/2允许服务器主动向客户端推送文件,无需等待客户端的请求。当服务器接收到第一个请求之后就可以向客户端发送与该请求相关的资源,从而减少了延迟时间,提高了性能。

  4. 改善性能
    HTTP/2协议在多个方面都有所改善,如安全性提高、头部压缩、二进制协议等,这些改变可以带来更高级别的性能提升,特别是对于大量图片和资源的页面。

HTTP2.0和SPDY区别:

在这里插入图片描述

8. HTTP请求格式( GET / POST 方式 )

8.1 GET方式

① 请求行
请求的方式
请求的资源路径
请求的版本协议号

② 请求头(描述信息/标准化信息)
Accept:客户端可以接受的数据类型
Accept-Language:客户端可以接受的语言类型
User-Agent:浏览器的信息
Accpect-Encoding:客户端可以接受的编码格式
Host:表示请求的ip和端口号
Connection:告诉服务器请求连接如何处理
Keep-Alive:通知服务器回传数据不要马上关闭,保持一小段的连接
Closed:马上关闭

8.2 POST方式

① 请求行
请求的方式
请求的资源路径
请求的协议的版本号

② 请求头

Accept:客户端可以接受的数据类型
Accept-Language:客户端可以接受的语言类型
Referer:表示请求发起时,浏览器地址栏中的地址
User-Agent:浏览器的信息
Content-Type:发送的数据类型
Content-Length:发送的数据长度

③ 请求体:就是发送给服务器的数据

8.3 对GET和POST的理解

GET方法:
从指定的服务器上获得数据
GET请求能被缓存
GET请求会保存在浏览器的浏览纪录里(cookit)
GET请求有长度的限制
主要用于获取数据
查询的字符串会显示在URL中,不安全

POST方法:
提交数据给指定服务器处理
POST请求不能被缓存
POST请求不会保存在浏览器的浏览纪录里
POST请求没有长度限制
查询的字符串不会显示在URL中,比较安全

9.HTTP状态码

当使用浏览器访问某一个URL,会根据处理情况返回相应的处理状态
通常正常的状态码为2xx,3xx(如200)
如果出现异常会返回4xx,5xx(如404)

状态码首位 已定义范围 分类
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误

生产环境常见的HTTP状态码
消息 描述
200 OK 请求成功(其后是对GET和POST请求的应答文档)
301 Moved Permanently 请求的永久页面跳转
403 Forbidden 禁止访问该页面
404 Not Found 服务器无法找到被请求的页面
500 Internal Server Error 内部服务器错误
502 Bad Gateway 无效网关
503 Service Unavailable 当前服务不可用
504 Gateway Timeout 网关请求超时

状态码大全地址:https://product.pconline.com.cn/itbk/software/llq/1508/6862518.html

你可能感兴趣的:(前端,http,网络)