HTTP网络协议说明

day40--HTTP网络协议说明

课程介绍

1. ansible剧本控制配置
2. 用户访问网站页面
3. HTTP数据报文发送的信息
HTTP请求数据信息
HTTP响应数据信息
4. 网站页面资源信息
什么是静态网页资源
什么是动态网页资源
5. 网站访问度量方法
IP PV UV
6. 常用网站web服务
nginx php tomcat
网站一面代码:
html java python(框架Django)

一. 知识回顾

1) 部署ansible软件程序
a 部署SSH基于秘钥连接
b 安装部署ansible软件

2) 配置ansible主机清单
直接配置IP地址 主机组 配置变量 嵌入式 匹配多台([1:100])

3) ansible利用模块管理主机
4) ansible剧本编写方法
剧本组成部分: 角色信息 hosts 任务信息 tasks 触发器信息 handler
剧本编写规范: 缩进 字典 列表
剧本编写扩展:
a 变量设置方法 3种 编写举办实现修改主机名称和IP地址
b 剧本判断功能 when setup 判断方式 == != or and
when: (ansible_eth0.ipv4.address == ["10.0.0.0=41","10.0.0.31"])
c 剧本循环功能 with_items/toop
d 剧本调试功能
忽略错误功能 标签功能 提示剧本执行效率
e 剧本信息注册
f 剧本触发功能 notify: 多个调用触发器

5) 剧本整合方法 import_playbook:

ansible学习流程.png

二. ansible剧本角色功能配置

1. 角色功能有什么用:
1)让副本配置更加规范
2)可以让剧本信息简化
3)可以在汇总剧本中看到主机信息

2. 如何配置角色宏能:
第一个里程: 配置好主机清单
vim /etc/ansible/roles/hosts(自己单独写个角色清单)

第二个里程: 创建角色目录
vim /etc/ansible/roles/rsync
vim /etc/ansible/roles/rsync/{tasks,files,vars,handlers,templates}
tasks: 目录中定义任务的剧本信息
files: 保存要分发文件信息
vars: 目录中保存定义变量剧本文件
handlers: 目录中保存触发器剧本信息
templates: 目录中保存模板文件(jinja2)

ansible-galaxy init nginx --- 创建角色目录路径信息

角色目录规范.png

第三个里程: 配置角色目录中剧本信息
1) 编写tasks/main.yml
编写方式一: 直接编写任务信息
编写方式二: 将一个完整的剧本拆分成多个剧本

整合剧本.png

然后将多个任务整合: 使剧本的可用性更高

 vim main.yml
 - include_tasks: install_rsync.yml
 - include_tasks: copy_finle.yml

2) 保存files/文件信息

  [root@m01 files]# ll
   总用量 8
   -rw-r--r-- 1 root root 409 8月  26 19:00 rsyncd.conf
   -rw-r--r-- 1 root root  23 8月  26 18:23 rsync.password   

3) 配置vars/main.yml文件

  cat ../vars/main.yml 
   conf_dir: /etc/
   file_dir: /ansible_playbook/file

4) 配置handlers/main.yml

  [root@m01 files]# cat ../handlers/main.yml
   - name: rsync_restart
     service: name=rsyncd state=restarted
   - name: rsync_port
     shell: netstat -lntup|grep rsync
     register: rsync_port
   - name: rsync_port_info
     debug: msg={{ rsync_port.stdout_lines }}

第四个里程: 调取角色信息

[root@m01 ansible]# cat roles/site.yml 
- hosts: rsync_server,rsync_client
  roles:
    - rsync

查找原理.png

第五个里程: 执行角色汇总剧本
ansible-playbook /etc/ansible/roles/site.yml -i /etc/ansible/roles/hosts(-i=指定所加载配置文件)

补充: templatrs目录作用:

放置存储模板文件
第一个里程: 修改配置文件 变成 模板文件
vim rsyncd.conf
port: {{ prot }}
第二个历程: 需要将模板文件移动到templates/目录中
mv rsync/files/rsyncd.conf rsync/templates/
第三个历程: 修改复制数据的模块
copy 复制文件数据 == '' 所见即所得
template 复制文件数据 == "" 可以解析{{}}调取变量信息

三. 用户访问网站原理过程;

1. 进行域名解析过程: ---DNS解析原理(本地查询 递归查询 迭代查询A记录)
2. 和网站服务建立连接 三次握手过程
3. 发送HTTP请求信息 HTTP请求报文
4. 发送HTTP响应信息 HTTP响应报文
5. 和网站服务断开连接 四次挥手过程

HTTP协议是什么? 超文本传输协议

HTTP请求报文结构信息:
请求行:
> GET / HTTP/1.1
1)请求方法 GET(获得 客户端--从--服务端获得页面数据信息) POST(提交 客户端--发送数据--服务端)
2)请求内容 请求网站资源信息(页面文件 图片 视频 音频) 没有指定需求时默认请求首页文件(index.html)
3)请求使用的协议 HTTP/1.0 HTTP/1.1 HTTP/2.0
TCP协议长链接: HTTP/1.1 一次链接,可以发送多个请求

长链接.png

TCP短链接: HTTP/1.0 一次链接,只能发送一个请求
短链接.png

请求头:
Hosts: www.oldboydu.com --- 指定显示什么网站页面 www bbs blog 主机记录信息
User-Agent: curl/7.29.0 ---根据用户访问客户端信息不同,可以显示不同页面
空行:
请求主体: get方法没有请求主体 post方法具有请求主体???

HTTP响应报文结构信息:
起始行:
HTTP/1.1 302 Found

状态码.png

状态码.png

1)协议信息
2)响应状态码信息
响应头:
空行:
响应主体:

HTTP报文结构.png

四. 知识总结:

1. ansible剧本角色功能配置
2. 用户访问网站原理过程
3. HTTP协议报文结构
请求报文: 请求行(请求方法 请求内容 协议-TCP长链接/短链接)
响应报文: 起始行(状态码信息)

你可能感兴趣的:(HTTP网络协议说明)