一、Web的定义
- 全称与起源:Web全称为World Wide Web,即全球广域网,也称为万维网,是互联网的一种应用形式。它的起源可以追溯到上世纪60年代,但直到1990年蒂姆·伯纳斯-李(Tim Berners-Lee)发明了万维网(World Wide Web),才使得Web真正成为了一个全球性的信息共享平台。
- 技术基础:Web是建立在互联网之上的,使用TCP/IP协议、HTTP协议等标准化的通信协议来保证不同计算机之间的信息交换。HTML、CSS、JavaScript等语言和技术用于创建和呈现网页内容,使得用户可以通过浏览器进行访问和交互
-
Web的应用
-
信息共享:Web已经成为全球范围内最广泛的信息共享平台之一,提供了丰富的信息资源,包括新闻、社交媒体、电子商务、在线教育等各个领域。
- 经济机会:Web也带来了许多经济机会和商业模式,如电子商务、在线广告、社交媒体等,为企业和个人创造了巨大的经济价值。
二、网站基础
网站(Website)是指在互联网上,根据一定的规则,使用HTML、PHP等代码语言制作的用于展示特定内容的相关网页的集合。网站通常包含可供管理人员操作的后台及用户使用的前台,是一种通讯工具,用于发布公开资讯或提供网络服务。用户通过网页浏览器访问网站,获取所需信息或享受网络服务。
域名与域名解析
域名是互联网上的一个地址,是网站在浏览器地址栏中输入的网址,如“http://www.example.com”。域名由一串用点分隔的字母和数字组成,具有唯一性。
域名解析是将人类可读的域名转换为计算机可理解的IP地址的过程。IP地址是计算机网络中的唯一标识符,但由于IP地址难以记忆,因此使用域名来代替。域名解析的作用是将域名映射到相应的IP地址,使用户能够通过域名访问网站,而无需记住复杂的IP地址。
域名解析过程通常包括以下几个步骤:
- 浏览器搜索自己的DNS(域名系统)缓存。
- 搜索操作系统中的DNS,如内存中的DNS缓存或本地的hosts文件。
- 使用递归查询的方式查询本地域名解析服务器。
- 本地域名服务器采用迭代查询的方式,向根域名服务器查找,最终找到对应的IP地址。
动态页面与静态页面的差别
静态页面:
- 定义:静态页面是标准的HTML文件,其文件扩展名通常为.htm、.html等。静态页面在服务器上存储为文件,内容一旦发布就不会自动改变,除非手动修改源文件并重新上传。
- 特点:
- 内容稳定,易于被搜索引擎检索。
- 交互性差,功能有限。
- 页面浏览速度快,因为不需要连接数据库。
- 更新维护麻烦,需要手动修改源文件。
动态页面:
HTTP协议特点
HTTP协议具有以下几个主要特点:
- 定义:动态页面是基于编程和数据库技术生成的页面,其文件扩展名通常为.asp、.jsp、.php等。动态页面能够根据用户请求、时间、环境参数等动态生成HTML内容。
- 特点:
- 交互性好,可以实现用户登录、注册、查询等功能。
- 内容更新方便,管理员可以在后台随时更新内容,前台页面自动更新。
- 响应速度相对较慢,因为需要连接数据库并处理请求。
- 减轻服务器负担,因为可以动态生成内容而无需为每个用户保存独立的页面文件
- 三、HTTP协议
-
HTTP协议原理
HTTP协议采用了请求/响应模型,其工作原理主要包括以下几个步骤:
- 建立连接:HTTP协议通常承载于TCP协议之上,通过TCP三次握手建立连接。
- 发送请求:客户端(如浏览器)向服务器发送一个HTTP请求。请求报文由请求行、请求头和请求体三部分组成,其中请求行包含请求的方法(如GET、POST)、URL和协议版本等信息;请求头包含客户端发送请求时所携带的一些属性信息,如Host、User-Agent、Accept等;请求体则是客户端发送给服务器的实际内容(对于GET请求,通常没有请求体)。
- 服务器处理:服务器接收到请求后,根据请求的内容进行相应的处理,如查询数据库、生成响应内容等。
- 发送响应:服务器将处理结果以HTTP响应的形式返回给客户端。响应报文由状态行、响应头和响应体三部分组成,其中状态行包含协议版本、状态码和状态短语等信息;响应头包含服务器返回的一些元数据信息,如Content-Type、Content-Length等;响应体则是服务器返回给客户端的实际内容。
- 关闭连接:客户端接收完响应后,通过TCP四次挥手关闭连接。但需要注意的是,HTTP/1.1协议支持持久连接(keep-alive),即在一次TCP连接中可以发送多个HTTP请求和响应,以减少连接建立和关闭的开销。
- 无连接:HTTP协议每次请求和响应都是独立的,服务器处理完请求后就会关闭连接(在HTTP/1.1中可以通过keep-alive来保持连接)。这种无连接特性可以减少网络开销,但也可能导致每次请求都需要重新建立连接,增加了延迟。
- 无状态:HTTP协议对事务的处理没有记忆能力,即服务器不会记住客户端的状态。每次请求都需要提供完整的请求信息,服务器根据请求信息独立处理并返回响应。这种无状态特性使得HTTP协议具有很好的扩展性和灵活性,但也要求客户端必须保存状态信息(如使用Cookie或Session等技术)。
- 支持多媒体:HTTP协议支持传输多媒体数据,如图片、音频、视频等。这使得HTTP协议在Web开发和互联网通信中得到了广泛应用。
- 简单易用:HTTP协议采用简单的请求-响应模式,易于实现和调试。同时,HTTP协议也支持扩展,可以通过添加新的请求方法、请求头、状态码等来扩展协议功能。
- 可靠性较差:虽然HTTP协议底层使用TCP协议作为传输层协议,但HTTP协议本身并没有提供太多的保障机制。例如,HTTP协议没有数据完整性校验机制,也没有重发机制。因此,HTTP协议在传输数据时可能会受到网络不稳定等因素的影响而导致数据丢失或错误。为了提高可靠性,可以在应用层上通过添加数据完整性校验、重发机制等保障机制来实现。
- 四、URI和URL的特点
- URI的主要功能是作为资源的唯一标识,它可以是抽象的,不一定包含定位资源所需的具体信息。因此,URI在需要唯一标识资源而不必关心其具体位置时非常有用。
- URL则主要用于定位和访问网络上的资源。通过URL,我们可以知道资源的具体位置、访问协议、端口号等信息,从而实现对资源的直接访问。
- 六、报文格式
-
请求报文
请求报文是客户端发送给服务器的HTTP请求信息,主要由以下几个部分组成:
- 请求行(Request Line):
- 描述了请求的基本信息,包括请求方法(如GET、POST)、请求的URL(统一资源定位符)以及HTTP协议版本(如HTTP/1.1)。
- 请求方法指示了对资源的操作类型,如GET用于请求资源,POST用于提交表单数据。
- URL指明了请求的资源位置。
- 协议版本告诉服务器客户端使用的是哪个版本的HTTP协议。
- 请求头部(Request Header):
- 包含了一系列的“键/值”对,用于传递附加信息,如客户端类型(User-Agent)、请求的主机名(Host)、接受的内容类型(Accept)等。
- 每行一个头部字段,字段名和值之间用冒号(:)分隔,并以回车符(\r)和换行符(\n)结束。
- 空行:
- 请求头部之后必须有一个空行,用于分隔请求头部和请求正文(如果有的话)。
- 请求正文(Request Body)(可选):
- 对于某些请求方法(如POST),请求正文包含了要发送给服务器的数据。
- 数据可以是表单数据、JSON、XML等格式。