目录
前言
web:上个世纪80年代末90年代初诞生于欧洲量子物理实验室,主要用于实现能够在多个部门之间共享文档而且可以快速实现文档定位的一种协议。
http:在当时,http协议广泛应用的版本为0.9,那个时候的Web服务仅支持纯文本(纯文本:由纯ASCII字符组成的文本),这种纯文本还包括超链接,这种
一.域名概述
普通用户:访问web:输入域名www.baidu.com
1.基础概念:域名是描述一组服务器网卡IP映射关系的友好表现(方便记忆)
2.通过DNS地址解析
3.迭代和递归
4.解析中完整域名的组成www.baidu.com
5.其它
根域
顶级域
二级域
主机名
二.网页概念
1.网页
纯文本格式文件
编写语言为HTML
在用户的浏览器中被“翻译”成网页形式显示出来
2.网站
由一个一个页面构成的,是多个网页的结合体
主页
打开网站后出现的第一个网页称为网站主页(或首页)
3.域名
浏览网页时输入的网址
4.HTTP/HTTPS
用来传输网页的通信协议(是否加密),是一种通讯/交互的标准/规范
5.URL
是一种万维网寻址系统
6.HTML
用来编写网页的超文本标记语言
7.超链接
超链接是将网站中不同网页链接起来的功能
8.发布
将制作好的网页上传到服务器供用户访问的过程
三.域名服务与域名注册
1.域名
定义:标识一组主机并提供它们的有关信息的树形结构(主要确定了根在哪,就可以确定每个分支)
以".”根域为开始域名空间结构(从右往左看)根域位于域名空间最顶层,一般用一个".”表示基础单位,除了根域其他都只有一个上级域,有o或多个子域,同层域不可重复的子域或域名顶级域:一般代表一种类型的组织机构或国家地区(主要有此两种类型构成),如net(网络公司)、com(商业)、org(民间团体组织)、edu(教育)、gov(政府)、mil(军事)、cn(中国)、jp(日本)、hk(中国香港)
二级域:也叫子域用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn顶级域名下面设置的二级域名: .com.cn、.net.cn、 .edu.cn …主机:主机位于域名空间最下层,就是一台具体的计算机,如www、mail、都是具体的计算机名字,可以www.sina.com.cn.、mail.sina.com.cn、来表示,这种表示方式称为FQDN(完全合格域名),也是这台主机在域名中的全名
2.域名服务
分布式,每台主机维护一个部分,保持和维护域名空间的程序,响应解析器的请求
解析端(客户端)
向DNS服务器发出请求的设备
3.域名注册
域名注册是Internet中用于解决地址对应问题的一种方法遵循先申请先注册原则
域名注册步骤:
1.准备申请资料
2.寻找域名注册网站
3.查询域名
4.正式申请
5.申请成功
四.DNS解析的三种方式
1./etc/hosts
linux系统中负责快速解析的文件,包含了ip与主机名的映射关系,在没有DNS服务器的情况下,使用本地/etc/hosts完成解析/映射,实现快速访问
Ps:主要用于主机之间(IP和主机名)的映射/解析关系
192.168.226.128 master
192.168.226.129 node1
192.168.226.130 node2
2./etc/resolv.conf
DNS客户端配置文件,主要用于设置DNS服务器的P和域名,还包含了主机域名的搜索顺序等等,这个文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。
PS:主要用与匹配DNS服务器,示例:
nameserver 114.114.114.114
nameserver 8.8.8.8
3.在网卡配置文件中定义
/etc/ sysconfig/ network-scripts/ifcfg-ens33
DNS1=114.114.114.114
DNS2=8.8.8.8
五.Web概述
Web1.0
以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容这个过程是网站到用户的单向行为
Web2.0
更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与
Web2.0特征
用户分享、以兴趣为聚合点的社群、开放的平台,活跃的用户
1.静态页面与动态页面
静态页面定义
静态网页是标准的HTML文件扩展名是.htm .html例如文本、图像、声音、Flash动画、客户端脚本和Activex控件及Java小程序等,是网站建设的基础,早期网站一般都由静态网页制作没有后台数据库、不含程序和不可交互的网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站
2.静态页面特点
每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而有"?"网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
静态网页的内容相对稳定,容易被搜索引擎检索静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难静态网页的交互性较差,在功能方面有较大的限制页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面
3.动态页面
网页URL不固定,能通过后台与用户交互,在动态网页网址中有一个标志性的符号——"?"常用的语言有PHP、JSP、Python、Ruby等
4.动态页面特点
交互性
网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后wBB发展的大势所趋
自动更新
无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量因时因人而变当不同的时间,不同的人访问同一网址时会产生不同的页面
六.HTTP协议概述
1.HTTP(超文本传输协议HyperText Transfer Protocol)协议是互联网上应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
2.HTTP/HTTPS是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行TCP连接(三次握手),之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现
3.HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理(存储,保存)。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务, 提高效率。然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie。
4.cookie和session都为了实现的是http的短期的持久化(内存/缓存方式,查询快、效率比较高),cookie是缓存在用户端(client)浏览器中的(默认缓存一天),当下次客户端通过同一个浏览器访问客户端的时候,会优先读取cookie中的缓存信息,向服务端进行请求,同时服务端收到客户端请求的时候,读取到cookie文件,知道客户端之前找的是服务器A处理的任务,为了省事儿,省资源,干脆直接讲请求直接再交给服务器A处理。
2.两者对比:
cookie 省服务器性能
session 更安全
HTTP协议的版本
HTTP 0.9已过时
HTTP 1.0(完善的请求、响应模型 并且协议补充(完整) get post head方法)
HTTP 1.1(新增五种请求方式:OPTIONS PUT DELETE TRACE CONNECT)
HTTP 2.0
3.HTTP1.0和HTTP1.1之间的区别
1.缓存处理
在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
2.带宽优化及网络连接的使用
HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接
3.错误通知的管理
在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除
4.Host头处理
在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)
5.长连接
HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点
七.各类别常见HTTP状态码
2xx (3种成功处理)
200 OK: 表示从客户端发送给服务器的请求被正常处理并返回
204 No Content: 表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回)
206 Patial Content: 表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容
3xx (5种重定向)
301 Moved Permanently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL
302 Found: 临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL
301与302的区别: 前者是永久移动,后者是临时移动(之后可能还会更改URL)
303 See Other: 表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源
302与303的区别: 后者明确表示客户端应当采用GET方式获取资源
304 Not Modified: 表示客户端发送附带条件(是指采用GET方法的请求报文中包含if- Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码
307 Temporary Redirect: 临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况)
4xx (4种客户端错误)
400 Bad Request: 表示请求报文中存在语法错误
401 Unauthorized: 未经许可,需要通过HTTP认证
403 Forbidden: 服务器拒绝该次访问(访问权限出现问题)
404 Not Found: 表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请 求但不想给拒绝原因时使用
5xx (4种服务器错误)
500 Inter Server Error: 表示服务器在执行请求时发生了错误,也有可能是web应用存在bug 或某些临时的错误时
502 Bad Gateway: 表示无效网关
503 Server Unavailable: 表示服务器暂时处于超负载或正在进行停机维护,无法处理请求
504 Gatway Timeout: 表示请求超时