web基础与HTTP协议
1. DNS与域名
1.1 域名
1.1.1 概述
网络基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的标识 (固定的IP地址),用以区别在网络上成千上万个用户和计算机。
为了保证地址唯一性,用户协议向特地给机构申请注册,分配IP地址网络中的地址有两套方案
1.IP地址系统
2.域名地址系统
1.1.2 实例
如何申请阿里云域名
- 首先准备申请资料申请查询重名
- 进行阿里云的备案(大概20到60元),并对负责人进行拍照
- 申请之后10到20天就可以解析并使用
1.2 DNS解析
三种DNS解析方式
-
/etc/hosts
linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,使用本地/etc/hosts完成解析与映射,实现快速访问。主要用于主机之间(IP和主机名)的映射与解析关系。例: 192.168.226.128 master 192.168.226.129 node1 192.168.226.130 node2
-
/etc/resolv.conf
DNS客户端配置文件,主要用于设置DNS服务器的IP和域名,还包含了主机域名的搜索顺序等等,这个文件是由域名解析器resolver(一个根据主机名解析IP地址的库)使用的配置文件,主要用与匹配DNS服务器。例: nameserver 114.114.114.114 nameserver 8.8.8.8 nameserver 218.2.135.1
-
/etc/sysconfig/network-scripts/ifcfg-ens33
网卡配置文件中也可以定义DNS*生效顺序:1.hosts文件;2.网卡配置文件;3./etc/resolv.conf
2. 网页的概念
2.1 网页(HTTP/HTTPS)
- 基本概念
用编写语言HTML来编写的纯文本格式文件,在用户的浏览器中被“翻译”成网页的形式显示出来。 - HTTP/HTTPS
用来传输网页的通信协议,S代表加密。是通讯及交互的一种标准和规范。
2.2 HTML概述
3. Web
3.1 概述
万维网并非某种特殊的计算机网络,而是一个大规模的、联机式的信息贮藏库,且具有提供分布式服务的特点,即能够使用链接的方法非常方便地从因特网上的一个站点访问另一个站点(超链技术)。万维网是一个基于B/S架构实现分布式的超媒体系统,是超文本系统的扩充。
3.2 Web
3.2.1 Web 1.0
- 以编辑为特征,网站提供给用户编辑处理后的的内容,然后用户阅读网站提供的内容
- 这个过程是网站到用户的单向行为
- 特征:以静态,单向阅读为主
3.2.2 Web 2.0
- 加强了网站与用户之间的互动,更注重用户的交互作用。用户提供网站内容,并参与建设网站的诸多功能,从而实现网站与用户双向的交流与参与。用户既是网站内容的消费者即浏览者,也是网站内容的制造者
- 特征:用户热衷分享、社群以兴趣聚合、平台开放,用户活跃
3.3 静态页面与动态页面
1. 静态页面由于很多内容都是固定的,所以在功能方面有很大的限制,交互性较差
2. 动态网页则可以实现更多的功能,如用户的登录、注册、查询等
4. HTTP协议概述
4.1 HTTP协议简介
HTTP (超文本传输协议HyperText Transfer Protocol) 协议是互联网上应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议。简单来说就是客户端和服务端进行数据传输的一种规则。
4.2 cookie和session扩展
在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如cookie。
-
定义:cookie和session都为了实现HTTP的短期的持久化(内存/缓存方式,查询快、效率高),cookie是在用户端(client)浏览器中的缓存(默认一天),session是服务器内部缓存
-
工作流程:当下次客户端通过同一个浏览器访问客户端的时候,会优先读取cookie中的缓存信息,再向服务端进行请求。而服务端收到客户端请求时,通过读取cookie文件得知客户端先前通过服务器A处理任务,为了省时省力直接允许请求并再交给服务器A处理。
-
两者特性对比:
cookie 省服务器性能
session 更安全 -
功能
1.为后面服务、集群、功能优化做铺垫
2.具体解释了如何解决HTTP无状态协议的持久化及存储
4.3 HTTP请求格式
分为GET和POST两种格式
-
GET方法:
从指定的服务器上获得数据
GET请求能被缓存
GET请求会保存在浏览器的浏览纪录里(cookit)
GET请求有长度的限制
主要用于获取数据
查询的字符串会显示在URL中,不安全 -
POST方法:
提交数据给指定服务器处理
POST请求不能被缓存
POST请求不会保存在浏览器的浏览纪录里
POST请求没有长度限制
查询的字符串不会显示在URL中,比较安全
4.4 HTTP状态码
当使用浏览器访问某一个URL,会根据处理情况返回相应的处理状态。
通常正常的状态码为2xx,3xx (如200)
如果出现异常会返回4xx,5xx (如404)
4.5 HTTP协议请求流程
举例:http://www.baidu.com:80/tools.html
- 用户输入URL(地址链接)客户端获取到端口及主机名后,客户端利用DNS解析域名
- 客户端的浏览器会先找自身的缓存,如果已有解析那么结束
- 如果没有,客户端去找host文件;
如果host文件没有,客户端去找本地的DNS缓存服务器;
如果本地的DNS缓存服务器没有,本地缓存服务器再去找根域;
如果根域没有,本地缓存服务器回复.com.,然后去找顶级域;
如果顶级域没有,本地缓存服务器回复baidu.com,然后去找二级域,二级域解析完后返回客户端。 - 客户端解析到IP地址后会通过TCP的三次握手与服务器建立连接