目录
一、DNS与域名
1.1、DNS解析方式
1.2、域名注册
二、网页的概念
2.1、网页(HTTP/HTTPS)
2.2、HTML概述
三、Web
3.1、Web概述
网络是基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的IP),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相连的网络和主机是,均采用一种唯一、通用的地址格式,即每一个与网络相连接的计算机都被指派一个独一无二的地址。
3.2、Web1.0 VS Web2.0
Web1.0
以编辑为特征,网站提供给用户的内容是编辑处理后的,然后用户阅读网站提供的内容.这个过程是网站到用户的单向行为。
Web2.0
更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者,加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与。
3.3、静态页面与动态页面
静态页面
1、静态网页是标准的html文件
2、扩展名是.htm、.html
3、是网站建设的基础,早起网站一般都由静态网页制作
4、没有后台数据库、不含程序和不可交互的网页
5、相对更新起来比较麻烦,适合用于一般更新较少的展示型网站
静态页面特点
1、每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含?
2、网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页都是保存在网站服务器上的
3、静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难。
4、静态网页的交互性较差,在功能方面有较大的限制
5、页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面
动态页面
1、网页URL不固定,能通过后台与用户交互
2、在动态网页网址中有一个标志性的符号——"?"
3、常用的语言有PHP、JSP、Python、Ruby
动态页面特点
1、交互性:网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这是当前使用的web类型。
2、自动更新:无需手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量
3、因时因人而变:当不同的时间,不同的人访问同一个网址会产生不同的页面
四、HTTP协议
4.1、HTTP协议概述
HTTP协议简介、版本:HTTP(超文本传输协议)协议是互联网应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。
HTTP是应用层上的协议,简历在传输层TCP之上,客户端通过与服务端进行TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。
HTTP是一种无状态协议,HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理,这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务,提高效率。
4.2、cookie和session扩展
cookie
Cookie基于HTTP协议,也叫Web Cookie或浏览器Cookie,是服务器发送到用户浏览器并保存在客户端
本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它
用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie使基于无状态的HTTP
协议记录稳定的状态信息成为了可能。
① 第一次请求过程
浏览器第一次发送请求时,不会携带任何cookie信息
服务器接收到请求之后,发现请求中没有任何cookie信息
服务器生成和设置一个cookie.并将此cookie设置通过set_cookie的首部字段保存在响应报文中返回给浏
览器
浏览器接收到这个响应报文之后,发现里面有cookie信息,浏览器会将cookie信息保存起来
② 第二次及其之后的过程
当浏览器第二次及其之后的请求报文中自动 cookie的首部字段携带第一次响应报文中获取的cookie信息
服务器再次接收到请求之后,会发现请求中携带的cookie信息,这样的话就认识是谁发的请求了
之后的响应报文中不会再添加set_cookie首部字段
Cookie主要用于以下三个方面:
- 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
- 个性化设置(如用户自定义设置、主题等)
- 浏览器行为跟踪(如跟踪分析用户行为等)
session
cookie和session区别
cookie和session的相同和不同:
cookie通常是在服务器生成,但也可以在客户端生成,session是在服务器端生成的
session 将数据信息保存在服务器端,可以是内存,文件,数据库等多种形式,cookie 将数据保存在
客户端的内存或文件中单个cookie保存的数据不能超过4K,每个站点cookie个数有限制,比如IE8为50个、Firefox为50
个、Opera为30个;session存储在服务器,没有容量限制
cookie存放在用户本地,可以被轻松访问和修改,安全性不高;session存储于服务器,比较安全
cookie有会话cookie和持久*cookie,生命周期为浏览器会话期的会话cookie保存在缓存,关闭浏
览器窗口就消失,持久cookie被保存在硬盘,知道超过设定的过期时间;随着服务端session存储
压力增大,会根据需要定期清理session数据
session中有众多数据,只将sessionID这一项可以通过cookie发送至客户端进行保留,客户端下次
访问时,在请求报文中的cookie会自动携带sessionID,从而和服务器上的的session进行关联
4.3、HTTP协议的版本
HTTP1.0和HTTP1.1的区别
1. 持久连接:
HTTP1.0中每次请求都需要在请求头中加上connection: keep-alive来指示服务器不断开连接。而
HTTP1.1中默认为持久连接,不需要再加上这个头。
2. 分块传输编码:
HTTP1.1中支持分块传输编码(chunked transfer encoding),可以将数据分成多个块传输,避
免了等待整个响应全部到达之后才开始渲染页面的问题。
3. 缓存处理:
HTTP1.1中使用更多的缓存策略,有强缓存和协商缓存两种。HTTP1.0只有强缓存。
4. 虚拟主机:
HTTP1.1支持虚拟主机,可以在同一IP地址下使用多个域名。HTTP1.0不支持虚拟主机。
5. 状态码:
HTTP1.1将状态码增加到了101、201、202、203、204、205、206和307等状态。
6. 传输编码:
HTTP1.1中新增了一种传输编码:gzip。可以使用gzip来压缩传输内容,减少传输数据量,提高传输速度
HTTP1.1和HTTP2.0的区别
1、多路复用
HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求数量比HTTP1.1大了好几个数量级。HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的,使用HTTP2.0来的更为高效。
2、头部数据压缩
在HTTP1.1中,HTTP请求和响应都是由状态行、请求/响应头部、消息主题三部分组成。一般而言,消息主题都经过gzip压缩,或者本身传输的就是压缩过后的二进制文件,但状态行和头部却没有经过任何压缩,直接以纯文本传输。随着Web功能越来越复杂,每个页面产生的请求数也越来越多,导致消耗在头部的流量越来越多,由器是每次传输UserAgent,Cookie这类不会频繁变动的内容,完全是一种浪费。
HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就更快了。
3、服务器推送
服务器推送是一种在客户端请求之前发送数据的机制。网页使用了许多资源:HTML、样式表、脚本、图片等等。在HTTP1.1中这些资源每一个都必须明确地请求。这时一个很慢的过程。浏览器从获取HTML开始,然后把在它解析和评估页面的时候,增量地获取更多的资源。因为服务器必须等待浏览器的每一个请求,网络基础是空闲的和为充分使用的。
为了改善延迟,HTTP2.0引入server push,它允许服务端推送资源给浏览器,在浏览器明确的请求之前,免得客户端再次创建连接发送请求到服务端获取,这样客户端可以直接从本地加载这些资源,不再通过网络。
4.4、HTTP状态码
状态码首位 | 已定义范围 | 分类 |
1xx | 100-101 | 信息提示 |
2xx | 200-206 | 成功 |
3xx | 300-305 | 重定向 |
4xx | 400-415 | 客户端错误 |
5xx | 500-505 | 服务器错误 |
生产环境中常见的状态码
消息 | 描述 | |
200 | OK | 请求成功 |
301 | Moved Permanently | 请求的永久页面跳转 |
403 | Forbidden | 禁止访问该页面 |
404 | Not Found | 服务器无法找到被请求的页面 |
500 | Internal Server Error | 内部服务器错误 |
502 | Bad Gateway | 无效网关 |
503 | Service Unavailable | 当前服务不可用 |
504 | Gateway Timeout | 网关请求超时 |