Web应用架构与协议

应用架构

典型

Client/Server

  • 适用静态页面
  • Server既是存储器,存放html文件;又是执行机构,处理用户请求

Client/Server/Database

  • 数据库服务器
  • 通常存在动态脚本,用户请求时Web服务器执行

Web服务器集群

负载均衡设计

虚拟主机

  • 基于IP地址的方法:服务器里绑定多个IP,网站绑定在不同网站
  • 基于端口的方法:共享一个IP但通过不同端口访问
  • 基于主机名:

Web页面类型

内容、结构、表现效果、行为
分为三类:动态页面、静态页面、伪动态页面

动态页面

需要数据库等支持

静态页面

HTML文件形式存在

伪静态页面

静态页面展现,实际上使用动态脚本处理

页面文件组织方式

Robots协议

爬虫协议

规范

结构

  • 文件中包含一个或多个记录,每个记录由一个或多个空白行隔开,每个记录由多行组成
    • 形式:field>:<optionalspace><value><optionalspace>
  • User-Agent
    • User-Agent [agent_name]
    • agent_name=*适用所有爬虫
  • Disallow/Allow
    • Disallow/Allow [url]
    • 可以是绝对路径、相对路径、部分路径
    • 如果没有显示声明Disallow,即允许访问

拓展功能

  1. 通配符
      • 用于Disallow/Allow的url
      • ?不是通配符
      • *代表任意多个字符(包括0)
      • $结束符:至此结束,后面没有任何字符
  1. 抓取延时
      • Crawl-delay:[num]
      • 两次访问网站的最小时间延时,也就是规定了最高请求频率
  1. 访问时段
    1. Visit-time:[time]-[0500]
    2. time用四位十进制数表示,24制
  1. 抓取频率
      • Request-rate:[num]/1m [time]-[time]
      • time-time一分钟最多num次
  1. Robots版本号
    1. Robot-version:Version2.0

HTTP协议

版本特性

  1. HTTP0,9
    1. 只有GET,只能响应HTML文档
    2. 不会返回错误码
  1. HTTP1.0
    1. 增加POST、HEAD
    2. 响应多媒体
    3. 请求头加入Connection:keep alive
  1. HTTP1.1
  1. HTTP2

HTTP报文

请求报文

规定报文由起始行、头部、实体构成
  • <entity-body>请求体,放内容

响应报文

HTTP头部

  1. Accept
  1. Host
  1. Range
  1. UserAgent
  1. Conent-Range
  1. Content-Type
  1. Cookie
  1. Set-Cookie
  1. Connection
  1. Content-Length
  1. Server
  1. Warning
  1. Referer

HTTP状态码

1xx信息状态码
2xx成功状态码
  • 200
  • 202接收尚未处理
3xx重定向状态码
  • 301,访问的资源转移位置
  • 304,响应报文不含实体的主体
4xx客户端错误状态码
  • 400,请求报文含错误
  • 401,身份认证失败
  • 403,拒绝执行
  • 404,无法找到请求资源
5xx服务器端错误状态码
  • 500,服务器执行发生错误
  • 503,服务器超负载或维护

HTTPS

使用SSL/TLS加密的HTTP协议,保护隐私和完整,实现服务器身份认证

SSL

HTTP与TCP之间的安全协议
  • 对称加密:块
  • 非对称加密
    • 公钥
    • 私钥
  • TLS:SSL3.0后续版本

SSL握手

notion image

状态保持技术

Cookie

服务器生成,客户端保存、读取

Session

服务器生成,服务器端保存、读取
Prev
Web页面及相关技术
Next
普通爬虫页面采集技术与Python实现
Loading...
Article List
一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++