Web基础与http协议

一、DNS与域名

1. 域名的概述

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

2. DNS的解析方式

DNS解析方式主要有三种

(1)/etc/hosts

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

(2)/etc/resolv.conf

DNS 客户端配置文件,主要用于设置 DNS 服务器的 IP 和域名,还包含了主机域名的搜索顺序等等,这个 文件是由域名解析器(resolver ,一个根据主机名解析 IP 地址的库)使用的配置文件
主要用与匹配 DNS 服务器,示例:
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 218.2.135.1

(3)/etc/sysconfig/network-scripts/ifcfg-ens33

我们也可以在网卡配置文件中定义
DNS1=
DNS2=

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

3. 域名

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

(2)、 域名空间结构 ( 从右往左看 )
www.baidu.com.
① 根域 位于域名空间最顶层,一般用一个 “.” 表示
基础单位,除了根域 其他都只有一个上级域,有 0 或多个子域,同层域不可重复的子域或域名
② 顶级域
一般代表一种类型的组织机构或国家地区(主要有此两种类型构成),如 net (网络公司)、 com (商
业)、 org (民间团体组织)、 edu (教育)、 gov (政府)、 mil (军事)、 cn (中国)、 jp (日本)、
hk (中国香港)
③ 二级域
用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn
级域名下面设置的二级域名: .com.cn .net.cn .edu.cn …
④ 子域
子域名(或子域;英语: Subdomain )是在域名系统等级中,属于更高一层域的域。比如,
mail.example.com calendar.example.com example.com 的两个子域,而 example.com 则是顶级
.com 的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名

(3)、域名注册

域名注册是 Internet 中用于解决地址对应问题的一种方法
遵循先申请先注册原则
域名注册步骤:

二、网页

网页的基本概念

① 网页
纯文本格式文件
编写语言为 HTML
在用户的浏览器中被 翻译 成网页形式显示出来
② 网站
由一个一个页面构成的,是多个网页的结合体 主页
打开网站后出现的第一个网页称为网站主页(或首页)
③ 域名
浏览网页时输入的网址
HTTP/HTTPS
用来传输网页的通信协议(是否加密),是一种通讯 / 交互的标准 / 规范
URL
是一种万维网寻址系统
HTML
用来编写网页的超文本标记语言
⑦ 超链接
超链接是将网站中不同网页链接起来的功能
⑧ 发布
将制作好的网页上传到服务器供用户访问的过程

三、Web

3.1 Web概述

Web(网络)是指全球范围内通过互联网互相连接的信息资源的集合。它是一个巨大的信息交流平台,允许用户访问和分享文档、图像、视频、应用程序和其他多媒体资源

  • 网页(Web Pages)

    • 网页是 Web 的基本构建单元,由 HTML(超文本标记语言)、CSS(层叠样式表)、JavaScript 等技术创建。
    • 网页可以包括文本、图像、链接和多媒体内容,用于展示信息和实现交互功能。
  • 网站(Websites)

    • 网站是由多个相互关联的网页组成的集合体,通常包括主页、子页面和其他内容。
    • 网站提供了结构化的信息和服务,如博客、电子商务平台、新闻网站等。
  • Web 浏览器(Web Browser)

    • Web 浏览器是用户用来访问和浏览网页的软件应用程序,如 Chrome、Firefox、Safari 等。
    • 它们解释和渲染网页内容,并支持用户与网页的交互。
  • Web 服务器(Web Server)

    • Web 服务器是存储和传输网页、多媒体和其他文件的计算机系统。
    • 当用户在浏览器中请求网页时,Web 服务器接收请求并向浏览器发送请求的网页内容。
  • HTTP(Hypertext Transfer Protocol)

    • HTTP 是 Web 使用的主要协议,定义了浏览器和服务器之间如何传输和交换数据的规则。
    • 它是建立在 TCP/IP 协议上的应用层协议,通常使用端口号 80。
  • URL(Uniform Resource Locator)

    • URL 是用来标识和定位 Web 上资源的地址,例如网页、图像、文件等。
    • 它由协议(如 HTTP)、主机名、路径和可能的查询字符串组成

3.2 Web1.0 VS Web2.0

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

3.3 静态页面与动态页面

(1) 静态页面定义 ① 静态网页是标准的HTML文件 ② 扩展名是.htm、.html 例如文本、图像、声音、Flash动画、客户端脚本和ActiveX控件及Java小程序等 ③ 是网站建设的基础,早期网站一般都由静态网页制作 ④ 没有后台数据库、不含程序和不可交互的网页 ⑤ 相对更新起来比较麻烦,适用于一般更新较少的展示型网站

(2)静态页面特点: ① 每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?” ② 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的 ③ 静态网页的内容相对稳定,容易被搜索引擎检索 ④静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠 静态网页制作方式比较困难 ⑤ 静态网页的交互性较差,在功能方面有较大的限制 ⑥ 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面

(3) 动态页面 ① 网页 URL不固定,能通过后台与用户交互 ② 在动态网页网址中有一个标志性的符号——“?” ③ 常用的语言有PHP、JSP、Python、Ruby等

(4) 动态页面特点 ① 交互性 网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大 势所趋 ② 自动更新 无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量 ③ 因时因人而变 当不同的时间,不同的人访问同一网址时会产生不同的页面

四、http 

1. http 概述

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

2. cookie和session

2.1 cookie 

定义:Cookie是存储在用户浏览器中的小型文本文件,由服务器发送并在客户端(浏览器)上保存

工作原理

  1. 当用户访问一个网站时,服务器可以发送一个包含Cookie的HTTP响应头(Set-Cookie)。

  2. 浏览器收到这个响应后,会将Cookie保存起来。

  3. 之后每次用户向该服务器发送请求时,浏览器都会自动将相应的Cookie包含在HTTP请求头中(Cookie)。

  4. 服务器通过读取请求头中的Cookie来识别用户

特点

  • 存储位置:客户端(浏览器)。

  • 生命周期:可以设置过期时间,可以是会话级别的(关闭浏览器后失效)或持久性的(长期有效)。

  • 大小限制:通常每个Cookie的大小限制为4KB,每个域名下的Cookie数量也有限制。

  • 安全性:Cookie可以设置HttpOnly和Secure属性来提高安全性,防止跨站脚本攻击(XSS)和中间人攻击

2.2 session

定义:Session是服务器端存储用户会话信息的机制,通常与Cookie结合使用

工作原理

  1. 用户首次访问网站时,服务器会创建一个唯一的Session ID。

  2. 服务器将这个Session ID通过Cookie发送给客户端。

  3. 客户端在后续请求中将包含这个Session ID的Cookie发送回服务器。

  4. 服务器根据Session ID来检索和更新用户会话数据

特点

  • 存储位置:服务器端。

  • 生命周期:通常在用户关闭浏览器后失效,但也可以通过配置延长生命周期。

  • 大小限制:理论上没有大小限制,但实际受服务器资源限制。

  • 安全性:Session数据存储在服务器端,相对更安全

2.3 两者区别

  • 存储位置:Cookie存储在客户端,Session存储在服务器端。

  • 安全性:Session相对更安全,因为数据存储在服务器端,而Cookie可能会被窃取或篡改。

  • 生命周期:Cookie可以设置为持久性的,而Session通常是会话级别的。

  • 性能:Cookie会增加每个HTTP请求的大小,而Session主要占用服务器资源

应用场景

  • Cookie:通常用于存储用户偏好设置、跟踪用户行为等。

  • Session:通常用于存储用户登录状态、购物车数据等敏感信息

3. http 协议的不同版本

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

4. http 的请求格式

4.1 get方式

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

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

4.2 post 请求方式

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

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

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

4.3 两种方式区别

① 区别一:语义上的区别 Get向服务器请求数据,依照HTTP协议,get 是用来请求数据。 Post向服务器发数据,依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语义, 该操作是会修改服务器上的数据

② 区别二:服务器请求的区别 Get请求是可以被缓存,示例: 访问百度,访问的方式就是GET,此时访问后的内容会缓被存在浏览器中,短时间再次访问,其实是拿 到的浏览器中的缓存内容 另外Get请求只能接收ASCII码的回复 Post请求是不可以被缓存的。对于Post方式提交表单,刷新页面浏览器会弹出提示框“是否重新提交表 单”, Post可以接收二进制等各种数据形式,所以如果要上传文件一般用Post请求

③ 区别三:参数放请求头和请求体的差别 Get请求通常没有请求体(当然这也是可以由程序猿心情改变的),在TCP传输中只需传输一次(而不 是一个包), 所以Get请求效率相对高。 Post请求将数据放在请求体中,而实际传输中,会先传输完请求头,再传输请求体,是分为两次传输的 (而不是两个包)。 Post请求头会比Get更小(一般不带参数),请求头更容易在一个TCP包中完成传输,更何况请求头中有 Content-Length的标识,可以更好地保证Http包的完整性。

简单的理解:

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

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

5. http的状态码 (重要)

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

通常正常的状态码为2xx,3xx(如200)

如果出现异常会返回4xx,5xx(如404)

生产环境常见的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 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值