web基础与HTTP协议

目录

一、DNS与域名

1.1、扩展面试点

[二、DNS 解析](#二、DNS 解析)

三、网页的概念

[3.1、HTTP协议简介 HTTP](#3.1、HTTP协议简介 HTTP)

3..2、HTTP协议的版本

3..3、HTTP是超本文传输协议

3.4、HTTP状态码

3.4、cookie和session扩展

3.4.1、cookie和session区别

3.5、HTTP协议请求流程分析

3.6、URI、URL、URN

四、LAMP简介与概述

4.1、构建顺序

4.2、编译安装的优点


一、DNS与域名

网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的 IP 地址), 用以区别在网络上成千上万个用户和计算机。

网络在区分所有与之相 连的网络和主机时,均采用一 种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址

为了保证网络上每台计算机的 IP 地址的唯 一性,用户必须向特定机构申请注册,分配 IP 地址 网络中的地址方案分为两套:IP 地址系统和域名地址系统。

这两套地址系统其实是一一对应的关系 由于 IP 地址是数字标识,使用时难以记忆和书写,因此在IP 地址的基础上又发展出一种符号化的 地址方案,来代替数字型的 IP 地址

网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识IP,但是难记,用域名代替ip,用DNS来解析ip和域名。

1.1、扩展面试点

阿里云域名怎么申请

申请 查询重名 给钱20-60块 备案(阿里云)拍照(负责人拍照人) 10-20天 申请之后就可以解析和用 但是如果有问题会被封。

二、DNS 解析

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

三、网页的概念

3.1、HTTP协议简介 HTTP

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

3..2、HTTP协议的版本

HTTP/0.9: 已过时。只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于 该版本不支持POST方法,所以客户端无法向服务器传递太多信息。

HTTP/1.0: 这是第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用,特别是在代理服 务器中。

HTTP/1.1: 引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用,能很好地配合代理服 务器工作。还支持管道方式机制,即在同一个TCP连接里面,客户端可以同时发送多个请求,以便 降低线路负载,提高传输速度。

HTTP/2.0:完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且 不用按照顺序.对应。引入了头信息压缩机制,使用gzip或compress压缩后再发送。支持服务端推 送,允许服务器未经请求,主动向客户 端发送资源

3..3、HTTP是超本文传输协议

HTTP是超本文传输协议,顾名思义,这个协议支持超文本的传输。

什么是超文本?说白了就是使用 HTML编写的页面。通常,我们使用客户端浏览器访问服务器的资源,最常见的URL也是以html为后缀 的文件,因此可以说超文本是网络上最主要的资源。 既然HTTP协议的目的是在于支持超文本的传输,也就是资源的传输,那么客户端浏览器向HTTP服务器 发送请求,继而HTTP服务器将相信资源发回给客户端这样一个过程中,无论对于客户端还是服务器,都 没有必要记录这个过程,因为每一次请求和响应都是相对独立的,一般而言,一个URL对应着一个唯一 的超文本,正是因为这样的唯一性,使得记录用户的行为状态变得毫无意义,所以,HTTP协议被设计为无状态的连接协议符合它本身的需求。

HTTP协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求"点到为止",不会造成不必要的连接占用,缺点在于如果为了保留状态,每次请求都会传输大量的重复信息内容。

可是随着 Web 的不断发展,很多业务都需要对通信状态进行保存.如果是一次性会话的过程:

打开浏览器 -> 访问一些服务器内容 -> 关闭浏览器但目前有很多WEB访问场景,并不是一次性会话,而是多次相 关的会话,比如: 登录场景: 打开浏览器 -> 浏览到登陆页面 -> 输入用户名和密码 -> 访问到用户主页(显示用户名) -> 修改密码(输入 原密码)-> 修改收货地址....... 问题:在此处登录会话过程中产生的数据(用户会话数据)如何保存下来呢? 购物场景: 打开浏览器 -> 浏览商品列表 -> 加入购物车(把商品信息保存下来) -> 关闭浏览器打开浏览器-> 直接进入 购物车 -> 查看到上次加入购物车的商品 -> 下订单 -> 支付 问题: 在购物会话过程中,如何保存商品信息? 以上场景都需要保留会话数据,需要会话管理机制。 会话管理: 管理浏览器客户端和服务器端之间会话过程中产生的会话数据。 为了会话管理,HTTP就需要传输大量重复信息内容的问题,造成大量的网络带宽消耗。

于是 Cookie 和 Session 技术闪亮登场了,它们可以为用户进行会话管理,实现保存状态。 然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。

由于HTTP是无状 态协议 ,所以必须引入一些技术来记录管理状态,例如Cookie。

Cookie基于HTTP协议,也叫Web Cookie或浏览器Cookie,是服务器发送到用户浏览器并保存在客户端 本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie使基于无状态的HTTP 协议记录稳定的状态信息成为了可能。

3.4、HTTP状态码

3.4、cookie和session扩展

cookie 无状态协议是指协议对事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它应答就很快。

3.4.1、cookie和session区别

Cookie Session
生成位置 通常在客户端或也可以在服务器生成 在服务器端生成
数据存储位置 客户端的内存或文件中 服务器端生成,可以是内存、文件、数据库等多种形式
数据容量限制 单个cookie保存的数据不能超过4K,每个站点cookie个数有限制,比如IE8为50个、Firefox为50 个、Opera为30个; 没有容量限制
安全性 安全性不高,因为存放在用户本地,可以被轻松访问和修改 比较安全,因为存储于服务器
生命周期 可以是会话cookie(浏览器会话期间有效)或持久cookie(直到设定的过期时间),生命周期为浏览器会话期的会话cookie保存在缓存,关闭浏 览器窗口就消失,持久cookie被保存在硬盘,直到超过设定的过期时间,持久cookie被保存在硬盘 没有固定的生命周期,需要定期清理
使用方式 客户端每次请求都会携带cookie信息 客户端只携带sessionID,服务器根据sessionID识别用户
带宽占用 随着cookie个数的增多和访问量的增加,占用的网络带宽也会增大 不直接占用网络带宽,只传递sessionID
优缺点 优点:省服务器性能;缺点:安全性不高,可能占用较多网络带宽 优点:更安全,适合存储用户隐私和重要数据;缺点:不易在多台服务器之间共享,可能消耗服务器性能
应用场景 适用于需要客户端存储少量数据且对安全性要求不高的场景 适用于需要存储用户隐私和重要数据且对安全性要求较高的场景
实现目的 实现HTTP的短期持久化,通过缓存方式提高查询效率和性能 实现HTTP的短期持久化,通过服务器端存储保证数据的安全性和完整性

注意:session中有众多数据,只将sessionID这一项可以通过cookie发送至客户端进行保留,客户端下次访问时,在请求报文中的cookie会自动携带sessionID,从而和服务器上的的session进行关

联 cookie缺点:

1、使用cookie来传递信息,随着cookie个数的增多和访问量的增加,它占用的网络带宽也很大,试想假 如cookie占用200字节,如果一天的PV有几个亿,那么它要占用多少带宽?

PV(访问量): 即Page View, 页面浏览量或点击量,用户每次刷新即被计算一次,PV反映的是浏览某网站的页面数,PV与来访者的数量成正比,PV并不是页面的来访者数量,而是网站被访问的页面数量。

2、cookie并不安全,因为cookie是存放在客户端的,所以这些cookie可以被访问到,设置可以通过插件添加、修改cookie。所以从这个角度来说,我们要使用sesssion,session是将数据保存在服务端的, 只是通过cookie传递一个sessionId而已,所以session更适合存储用户隐私和重要的数据

session 缺点:

1、不容易在多台服务器之间共享,可以使用session绑定,session复制,session共享解决

2、session存放在服务器中,所以session如果太多会非常消耗服务器的性能cookie和session各有优缺点,在大型互联网系统中,单独使用cookie和session都是不可行的 cookie和session都为了实现的是http的短期的持久化(内存/缓存方式,查询快、效率比较高)cookie 是缓存在用户端(client)浏览器中的(默认缓存一天),当下次客户端通过同一个浏览器访问客户端的 时候,会优先读取cookie中的缓存信息,向服务端进行请求,同时服务端收到客户端请求的时候,读取 到cookie文件,知道客户端之前找的是服务器A处理的任务,为了省事儿,省资源,干脆直接讲请求直接再交给服务器A处理

两者对比: cookie 省服务器性能 session 更安全

3.5、HTTP协议请求流程分析

用户输入URL (地址链接)( http://www.baidu.com:80/tools.html)客户端获取到端口主机名后,

客户端利用DNS解析域名,首先客户端的浏览器会先找自身的缓存 ,如果有解析结束,如果没有客户端会去找host文件 ,如果host文件没有的话,客户端会去找本地的DNS缓存服务器 ,本地的DNS缓存服务器没有的话,缓存服务器会去找根域 ,根域没有,会返回一个.com.然后本地缓存服务器会去找顶级域顶级域没有的话会返回baidu.com.,然后本地缓存服务器会去找二级域 ,二级域解析完后会返回客户端。 客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接。

3.6、URI、URL、URN

URL 是一种万维网寻址系统 扩展:URI: Uniform Resource Identifier 统一资源标识,

分为URL 和 URN URN:Uniform Resource Naming,统一资源命名 这个资源叫什么具体的名字 示例: P2P下载使用的磁力链接是URN的一种实现 magnet:?xt=urn:btih:660557A6890EF888666(只是描述了资源的名字,并没有明确该资源在 哪里) mac地址全球唯一 URL:Uniform Resorce Locator,统一资源定位符,用于描述某服务器某特定资源位置 资源的具 体位置

先来看看三个符号的说明

标识符 全称 作用

URI Uniform Resource Identifier 统一资源标志符 唯一标识资源

URL Uniform Resource Locator 统一资源定位符 唯一定位资源位置

URN Uniform Resource Name 统一资源名称 唯一识别资源

四、LAMP简介与概述

构建LAMP平台顺序 在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP 其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服 务器和数据库系统以协同工作。

4.1、构建顺序

构建LAMP平台顺序 在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP 其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服 务器和数据库系统以协同工作

4.2、编译安装的优点

1、具有较大的自由度,功能可定制 2、可及时获得最新的软件版本 3、普遍适用于大多数Linux版本,便于一直使用。

各组件的主要作用 (平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提 供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。 (前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器 直接面向用户提供网站访问,发送网页,图片等文件内容。 (后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系 统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他 程序可以通过SQL语句来查询,更改这些信息。 (中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责 沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一 种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开 发

相关推荐
州周3 分钟前
Ftp目录整个下载
linux·服务器·数据库
Jackey_Song_Odd4 分钟前
Ubuntu 24.04.1 解决部分中文字符(门、径)显示错误的问题
linux·ubuntu
中科岩创12 分钟前
中科岩创边坡自动化监测解决方案
大数据·网络·物联网
kaixin_learn_qt_ing16 分钟前
Linux export命令
linux
余额不足1213819 分钟前
C语言基础十六:枚举、c语言中文件的读写操作
linux·c语言·算法
冷曦_sole23 分钟前
linux-19 根文件系统(一)
linux·运维·服务器
AI大模型学徒26 分钟前
Linux(二)_清理空间
linux·运维·服务器
花鱼白羊34 分钟前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
云川之下36 分钟前
【linux】 unshare -user -r /bin/bash命令详解
linux·bash·unshare
tntlbb1 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器