web服务

HTTP与Web服务器解析
本文深入探讨了HTTP协议的发展历程,从http/0.9到http/1.1的演变,以及TCP/IP、MIME、SMTP等关键概念。详细解析了Web服务器的工作原理,包括动态与静态网页的区别,HTTP方法,状态码,缓存机制,以及Apache、Nginx等主流Web服务器的特性。同时,介绍了虚拟主机的实现方式,httpd的配置与管理,以及与SELinux的交互。

Web :最早产生于欧洲量子实验室
http/0.9:仅纯文本(超链接),ASCII
HTML :HyperText Mark Language
<h2>Title</h2>
Browser:客户端(浏览器)
HTTP :HyperText Transfer Protocol
URI :Uniform Resource Indentifier ,全局范围内统一命名方式
统一 : 路径格式上的统一
URL :Uniform Resource Locator

protocol://HOST:port/path/to/file
http://www.mageedu.com/download/linux.tar.gz
web资源 :http://www.mageedu.com/logo.gif == web对象
多个资源很可能被整合为一个html文档

HTTP方法 :
GET
http/1.0 :PUT,POST ,DELETE
MIME : Multipurpose Internet Mail Extension ,多用途互联网邮件扩展(机制)
web服务
SMTP : Simple Mail Transmission Protocol ,纯文本
协议首部:
image/jpeg
web插件
动态效果:Java ,Applet ,JRE
动态网页:服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本授受参数之后在服务器运行一次,运行完后之后会生成HTML格式的文档,把生成的文档发给客户端
web :index.php
web ---->procotol ---->php (运行index.php)
TCP/IP工作在内核中

动态网页 : 包含静态内容和动态内容
动态内容部分才需运行
缓存 :
HTTP报文 :请求报文, 响应报文
web服务
web服务

状态代码 :
1xx :纯信息
2xx :“成功”类的信息 (200, 201, 202)
3xx : 重定向类的信息(301永久重定向,302临时重定向 ,304)
4xx :客户端错误类的信息(404)
5xx :服务器端错误类的信息
web服务
web服务

http,tcp :三次握手,四次断开
http/1.1 :
增强了缓存的功能
增加了长链接
长链接 :(限制)
闲时超时
访问次数
web服务
c/s
c : Clinet Agent (browser, spider(蜘蛛))
s :Sever
Client——>request——>Server
URL
Server——>response——>Client
资源请求方法
HTTP Method
GET,HEAD,POST,PUT,DELETE,CONNECTION,TRACR,OPTIONS
状态码:

HTTP Headers
Name:value
Host:www.baidu.com
Connection:keep-alive
Server :主要工作
响应请求
日志记录
Server响应请求模型:四种
1、单进程/单线程模型
2、多进程/多线程模型
3、同时接受所有请求,状态查询基于事件驱动机制,状态转换通知机制,结合水平触发,边缘触发
4、第二种+第三种
httpd:MPM
prefork
work
event

Client :
IE
Firefox
Chrome
Opera
Safari

Server
Apache-->httpd
IIS
nginx
lighttpd
thttpd

应用程序服务器
IIS (Microsoft)
tomcat (apache, JSP ,open source)
Websphere (IBM, JSP ,commodity)
Weblogic (Oracle ,JSP ,commodity)
JBoss (RedHat tomcat包装成的)

NCSA , httpd :A Patchy Server = apache
FSF :GNU, GPL
ASF :Apache Software Foundation
(web :httpd
Tomcat
hadoop)
www.apache.org
http:///httpd.apache.org
httpd :
web Server , Open Source
2.2 ,2.4 ,2.0
1、事先创建进程
2、按需维持适当的进程
3、模块化设计,核心比较小,各种功能都模块添加(包括php)
支持运行时配置,支持单独编译模块
4、支持多种方式的虚拟主机配置
虚拟主机:一个物理服务器,web程序也只有一个,可以访问不同站点
Socket IP : Port
基于IP的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机(落地项目最多)

                Method  URL version
                header

                body
                支持https协议(mod_ssl)
                支持用户认证
      支持基于IP或主机名的ACL
              支持每目录的访问控制
              支持URL重写
    httpd安装 :
    rpm包
    源码编译
    httpd受SELinux控制,SELinux处于Disble或者Pesime
    httpd :
         /usr/sbin/httpd  (MPM : prefork)
             httpd :root,root   (mater process)
             httpd :apache,apache  (worker process)
             /etc/rc.d/init.d/httpd
             Port :(80/tcp),(ssl :443/tcp)
             /etc/httpd  :工作根目录,相当于程序安装目录
             /etc/httpd/conf :配置文件目录
             主配置文件 :httpd.conf
             /etc/httpd/conf.d/*.conf
             /etc/httpd/modules 模块目录
             /etc/httpd/logs ---->/var/log/httpd 日志目录
             日志文件有两类:访问日志access_log, 错误日志: err_log
             /var/www
                 html
                     cgi-bin

                     cgi :Common Gateway  Interface  一种协议
                          Client ---->httpd (index.cgi) -->Spawn Process

                                perl,python ,java (Servlet, JSP ), php

                                directive value
                                指令平区分字符大小写
                                value则
                        fastcgi :
                        程序 :指令+数据
                        数据 :数据库服务
                        应用服务器和数据库服务器 都是CPU-bound CPU密集型
                        web服务器分层
                        静态层   apache
                        应用层   php
                        数据库层 MySQL

web服务

nginx :反向代理

URL路径跟本地文件系统路径不是一码事儿,URL是相对于DocumentRoot的路径而言的
Options :
None :任何选项都不支持
Indexes :允许索引目录
FollowSynLinks :允许访问符号链接指向的原文件
Includes :允许执行服务器端包含(SSI)
ExecCGI :允许运行CGI脚本
All :支持所有选项
Order :用于定义基于主机的访问功能的,IP,网络地址或主机定义访问控制机制
格式: Order allow , deny
allow from deny from
地址的表示方式:
IP
network/netmask
HOSTNAME
DOMAINNAME
partial IP172.16,(172.16.0.0/16)

elinks URL
-dump
-source
用户验证配置
web服务

PV :Page View 每天的页面访问量
UV :User View, 每天的独立IP访问量

Alias 路径别名
Apache虚拟主机 :
apache :服务器, Host ,物理主机

虚拟主机 :
Apache服务:
服务于多个不同的站点

Apache :

Apache 2.2
NameVirtualHost

Apache 2.4
ServerName :
ServerAlias
DocumentRoot :
<Directory "">
Option
AllowOverride
</Directory>
Alias 路径别名
ErrorLog
CustomLog

<Location "" >

</Location> 定义它使用的方法
ScriptAlias

CGI :Common GateWay Interface
使用虚拟主机必须先取消中心主机,注释中心主机的DocumentRoot即可
虚拟主机的定义:
<VirtualHost HOST>

</VirtualHost>
基于IP,HOST的写法
中心主机
虚拟主机
基于IP
IP1:80
IP2:80
基于端口
IP:80
IP:8080
基于域名
*:80
主机名不同
https://www.baidu.com
https://www.sohu.com

配置信息
web服务

设定默认虚拟主机
web服务

Locatioan定义URL路径

web服务

web服务

web服务
web服务

转载于:https://blog.51cto.com/14087650/2395608

Ymodem协议是一种在串行通信中用于数据传输的机制,起源于早期的Xmodem协议。该协议具备处理大容量数据文件的能力,支持数据校验、文件属性传递以及多文件批量传输。Qt是一个面向C++的跨平台开发框架,适用于构建图形界面程序及后台服务应用。当结合Qt实现Ymodem协议时,能够开发出适用于多种设备的通信程序,包括桌面系统、嵌入式设备和移动终端。 在Qt中实现Ymodem协议,需要掌握Qt的信号与槽机制、串口通信模块(如QSerialPort)以及线程管理技术。实现过程中通常包含以下主要环节: 1. 连接初始化:在通信双方确认状态后,启动数据传输流程。 2. 数据块传输:协议支持多种数据块大小,如128字节或1024字节。每个数据块需包含数据内容、编号及校验信息。接收端需对数据进行校验以保证完整性。 3. 序列管理与响应机制:通过编号确保数据顺序,发送端在收到确认信号后继续下一块传输。若未收到有效响应,则需重传。 4. 文件元信息传输:在正式传输前,发送方需传递文件名称及大小等信息,以便接收方进行存储准备。 5. 批量传输模式:支持多个文件的连续传输,需在数据中区分不同文件的块。 6. 传输结束机制:通常通过发送空数据块来终止通信过程。 在Qt中实现Ymodem协议的代码,通常需要创建多个类来封装串口通信逻辑及协议处理功能,同时需考虑异常处理和数据恢复策略。代码涉及对QSerialPort的配置、数据流的监控、事件循环的管理等。此外,为提升用户体验,开发人员可能在代码中加入进度显示、传输速率计算等功能。 Qt的跨平台特性使得基于其开发的Ymodem协议实现具备良好的可移植性,可在不同操作系统上运行。开发此类程序需要开发者对Ymodem协议有深入了解,并熟悉Qt框架的使用,包括信号机制、多线程及串口通信等技术。高质量的代码实现能够确保协议在不同运行环境下的稳定性与可靠性。 Ymodem协议的实现常出现在开源项目中,为开发者提供了参考和借鉴,有助于技术交流与社区发展。根据文件名“SerialPortYmodem”推测,该文件可能用于处理与串口通信相关的Ymodem逻辑。开发者在使用时应仔细查阅文档,理解各模块功能,以便正确集成和应用。 综上,Qt实现Ymodem协议的开发涉及对协议机制与Qt框架的深入理解,能够构建出满足多种串行通信需求的程序。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值