OpenEuler-Apache服务原理
HTTP概述
WWW服务实现将本地文档进行传输,传输协议使用http(超文本传输协议进行传输)——>URI、URL、URN进行资源和定位。
URI(统一资源标识符): 协议名 scheme ://
URL(统一资源定位符):uniform resource locator 指所访问的资源在互联网中对应的位置
URN(统一资源名):uniform resource naming 指所访问的资源在互联网中对应的米高程
HTML:Hyper Text Mackup Language 在浏览器中显示文档语言标准
URL(统一资源定位符)
基本格式:scheme :// host [:port] / path / [?query-string] [#anchor]
HTTP协议:基于TCP/IP协议进行通信
HTTP报文结构
- 起始行;
- 首部字段;
- 主题;
请求报文结构:
响应报文结构:
HTTP处理请求的方法
- GET:向服务器请求资源
- POST:向服务器输入数据
- PUT:向服务器写入文档
- DELETE:删除URL中所指定的资源
- HEAD:向服务器请求资源后,服务器仅返回资源首部,不返回主题
- TRACE:客户端发起请求时如果穿过防火墙、代理等应用时,原始的HTTP请求会被修改,使用TRACE后,客户端可以在最终请求发送给服务器时,看到其形态
- OPTIONS:请求web服务器告知其支持的各种功能
Web服务器相应码
- 100-199:信息性状态码
- 200-299:成功状态码
- 300-399:重定向状态码
- 400-499:客户端错误状态码
- 500-599:服务器错误状态码
- 常见状态码:
- 200:ok,表示连接正常
- 403:Forbidden,表示访问被拒绝,大多数是由于客户端对被请求的文件没有访问权限,或者由于被访问资源对应的文件或目录损坏
- 404:Not Found,表示无法找到资源
- 503:Server Unavailable,表示服务器当前无法处理客户端的请求,可以尝试刷新重新发送新的请求
- 504:Gateway Timeout,表示未接收到服务器的及时响应
HTTP请求访问的完整过程
1.建立连接:接受一个客户端请求,或者如果不希望与这个客户端建立连接,就将其关闭
2.接受请求:从网络中读取一条HTTP请求报文
3.处理请求:对请求报文进行解释,并采取行动
4.访问资源:从数据存储中读取报文中指定的资源
5.构建响应:创建带有正确头部的HTTP响应报文
6.发送响应:将响应回送给客户端
7.记录事务处理过程:将与已完成事务相关的内容记录到日志中
HTTP的特点
- 单向连接:仅能从客户端向服务器端发起连接请求
- 无状态协议:每一次请求都是独立的,响应完成后,本次连接即结束
- HTTP的连接可分为:
- 长连接
- 短连接
- 注:两者区别在于,长连接是仅建立一次TCP/IP连接后,不断开连接即可发起会话;短连接,每次会话的开启是建立连接,会话的结束是断开连接;一次会话一次建立与断开。
- HTTP的连接可分为:
- 明文传输
HTTPS简介
- https=http+ssl/tls
- HTTPS是用以解决HTTP明文传输带来的安全隐患
- 需用到CA申请证书
- 运行在基于TCP的SSL/TLS之上,所有内容都会被加密
- 使用端口为443端口
- 加密过程会降低用户的访问速度,但是经过优化,对其影响可控制在接受范围
- 目前几乎所有网站都使用HTTPS实现
HTTPS:超文本安全传输协议
信息加密 ——> 采用加密算法对被传输的数据进行加密
校验机制 ——> 采用摘要算法为数据生成唯一的指纹信息(校验码),通过校验码校验数据的完整性
身份认证 ——> 将服务端的公钥放置到CA数字证书中,解决服务器被冒充风险
HTTPS会话机制
①客户端向服务器端发送加密请求,申请建立连接;
②服务端产生一对公钥私钥密钥对,将自己的公钥发送给CA机构,CA机构利用自己的私钥将服务端发送过来的公钥进行加密,生成一个CA数字证书;
③服务端响应客户端请求,将CA机构生成的数字证书发送给客户端
④客户端将服务端发送过来的数字证书进行解析,验证CA数字证书的合法性,如果不合法,发送告警信息,如果合法,从数字证书中取出服务端生成的公钥。
⑤客户端取出公钥并生成一个随机码key
⑥客户端将加密后的随机码key发送给服务器端,作为接下来对称加密的密钥
⑦服务端接收到随机码key后,使用私钥进行解密,获取随机码key
⑧服务器端使用随机码key对传输的数据进行加密,再输出加密后的数据给客户端
⑨客户端使用自己生成的随机码key解密服务端发送过来的数据,然后客户端和服务端通过对称加密传输数据,随机码key解密
Web资源简介
1.静态资源:存放在Web服务器中的文件,可以是文本文件、HTML文件、图片文件或视频文件。静态资源不需要经过应用的处理,直接就可以被用户访问。
2.动态资源:需要经过应用服务器处理后提供给用户的资源。动态资源可以是搜索出来的结果,或在线交易结果显示,都是经过应用计算后给到用户的。
Web服务器的Cookie和Session
- Cookie和Session用以解决HTTP无状态所带来的问题
Session ID一般保存在服务器上,会话超时后自动删除;