WEB服务与虚拟主机
www(万维网)构建基于三项核心技术HTML、URL、HTTP
HTML
是用于创建网页和网页应用的标准标记语言,是所有Web开发的基础,描述网站的结构和内容,而其外观和表现通常由CSS控制。
基本框架
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
URI和URL
URI:统一资源定位符,唯一标识一个资源而不必指明它在哪里存在或如何让访问。URI包括URL和URN(统一资源名称)。
URL:统一资源定位器,用来告诉WEB服务,浏览器请求资源文件的路径,eg:https://www.csdn.net/,提供了资源位置和访问协议(HTTPS)。
HTTP
超文本传输协议,是互联网最广泛的协议之一,基于TCP80端口,主要用于在Web浏览器和服务器之间传输数据。http协议定义了客户端和浏览器之间请求和响应的格式。
特点
无状态协议:HTTP不保存之前的交互状态,每次的请求都是独立的,简化了设计,但限制了开发,所以服务器端会用cookie来存储用户状态。
可扩展:HTTP协议的请求和响应头部都支持自定义字段,使得HTTP可以适应各种用途。
消息结构
请求
请求行:包含三个部分
方法:一个动词,指定请求的操作类型
GET:请求检索的资源
POST:用于表单提交或文件上传,提交数据
PUT:替换指定资源的所有当前表示,服务器写入文档(一般不用)
DELETE:删除指定资源(一般不用)
HEAD:与GET类似,但在服务器响应中至返回首部
OPTIONS:测试服务器所支持的方法
请求URI:指定所请求资源的位置
协议版本:通常是HTTP/1.1或HTTP/2.0
一个典型的请求头
GET /index.html HTTP/1.1
//用GET方法请求资源
请求头
从第二行到第一个空行位置中间的内容都属于请求头。包含多个字段。
包含了关于请求和请求的资源的元数据。他们是键值对的形式,每对之间用冒号分隔。请求头在请求行后,用空行结束。
请求体
请求体是可选的,并不是所有的HTTP请求都包含请求体(GET请求通常没有请求体)。请求体包含发送给服务器的数据。在POST和PUT请求中,这些数据通常用于更新资源或创建资源。
请求体的具体内容由请求头中的Content-Type决定
Content-Type:application/x-www-form-urlencoded //体格式是编码的键值对
Content-Type:multipart/form-data //文件上传等操作
Content-Type:application/json //一个JSON字符串
响应
状态行:
HTTP版本:标示响应使用的HTTP协议
状态码:三位数来表明响应的结果,2xx表示成功,3xx表示重定向,4xx表示客户端错误,5xx表示服务器错误。
状态描述:简短的短语,“OK”、“Not Found”等
HTTP/1.1 200 OK
响应头
响应头提供了关于服务器、响应和其他访问控制的元数据,类似于请求头。响应头位于状态行之后,以空行结束。
响应体
响应体是服务器返回的实际数据部分,它不是所有响应都有的。响应体可能包含请求的HTML文件、图像、错误消息、或者其他类型的数据。响应体的内容应符合状态行和响应头中定义的内容类型。
常见的Web URL格式
基本网址
http://www.xxx.com.cn
标准HTTP网址,默认使用端口80
带端口的网址
http://www.xxx.com.cn:123
指定了端口号为123。Web服务器可以配置在除了默认端口外的任何端口上,这样在主机运行多个Web服务时非常有用。
带虚拟目录的网址
http://www.xxx.com.cn/webexam
包含虚拟目录webexam。虚拟目录是Web服务器的一个路径别名,只想服务器文件系统中的某个位置,客户端可以通过这个简化的路径来访问资源。
带端口号和虚拟目录的网址
http://www.xxx.com.cn:123/webexam
适用于访问配置在非标准端口上的特定Web应用或服务。
虚拟目录
虚拟目录是 IIS 中的⼀种机制,它允许你将服务器上不同的物理文件夹映射到网站的 URL 路径上。通过创建虚拟目录,你可以将服务器上任意位置的文件或文件夹通过⼀个特定的 URL 访问,而不需要将这些文件或文件夹直接放在网站的根目录下。
优势
组织文件:将文件放在不同位置,更好组织文件和资源
安全性:将敏感文件放在非根目录下,安全性UP
便于管理
虚拟主机
虚拟主机允许⼀台服务器托管多个网站,每个网站都有自己的域名和网站内容。每个虚拟主机都像是⼀个独立的服务器,具有自己的设置和配置。
功能:允许单一的物理服务器模拟多个Web服务器的功能,每个“服务器”都有自己的域名和网站内容。
虚拟目录与虚拟主机的关键区别
虚拟目录用于文件和目录的访问,是文件系统的逻辑表示,虚拟主机用于管理和托管完整的网站,每个网站都有自己的域名、配置和内容