web基础概念

什么是http?

http是一种超文本传输协议(hyper text tranfer protocol),工作在应用层.超文本就是拥有超级链接的文本(html hyper text mark language 超文本标记语言),最开始的超文本传输协议只是为了方便文件检索的工具,并没有各种其他的东西.

这里我们主要介绍http协议实现的工具httpd(apache)

基础概念:

URL(Uniform Resource Locator):资源标识,用于描述服务器上某特定资源的位置;

一次完整的http请求的处理过程:

(1) 建立或处理连接:接收请求或拒绝请求;

(2) 接收请求:接收客户端发来的具体请求报文;

(3) 处理请求:对请求报文进行解析;

(4) 访问资源:通过存储IO获取用户请求的资源;

(5) 构建响应报文:

(6) 发送响应报文 :

(7) 记录于日志中:

并发响应模型:

单进程I/O模型:串行响应;

多进程I/O模型:同时启动多个进程,每个进程响应一个请求;

复用的I/O模型:一个进程响应多个请求;

多线程模型:一个进程生成多个线程,每个线程响应一个请求;

事件驱动:一个进程直接响应多个请求;

复用的多进程I/O结构:启动m个进程,每个进程生成n个线程,每个线程响应一个请求;

路径映射:就是把一个文件的指定路径当作一个程序或者系统的根来使用.

Web的资源映射类型:

(a):DocumentRoot

(b):alias

(c):虚拟主机的docroot

(d):用户的docroot

...

http请求处理中的连接方式:一个web页面有多个资源组成,比如图片、文字、超级链接。每一个资源都要单独请求。为了加快本地客户端会启动多个线程,让服务器并发来响应一个客户端的多个同时的请求,但在服务器端会识别成多个独立的请求,只不过是来自于同一个ip地址。当客户端开启线程由服务器响应时,加载完成以后,由于tcp协议是有三次握手四次断开的,如果断开则请求下一个资源是则必须再次握手,造成很大的资源浪费。所以必须指定是否保持链接一次性请求多个资源。如果一个客户端只请求了一个资源则会占用服务器的线程数。所以会出现以下情况:

保持连接:长连接,keepalive

非保持连接:短连接,

为了限制两者的关系必须从 [时间][数量] 做限制

http协议的实现

常见的基本http协议服务器:

httpd(apache)

nginx

lighttpd

application server:动态服务器技术;

lis,tomcat,jetty。resin,。。。

weblogic,websphere,jobss,glassfish...

httpd:

www.netcraft.com(互联网上一个统计web网站使用的软件的网站)

httpd的特点:

高度模块化设计:core(内核)+modules(模块)

DSO:Dynamic Shared Objects(动态共享对象,支持动态装载和卸载)

模块的好处在于可以节约内存 和减少bug的可能性

MPM:多路处理模块  multlpath processing modules (并发响应模型)2.2版本以前不支持动态妆卸载2.4支持动态装卸载

常用功能模块:

prefork:一个主进程和多个子进程;主进程负责控制子进程,创建套接字,接受请求派发给子进程;

子进程:负责响应用户请求

worker:多进程多线程模型;一个线程响应一个请求

主进程:同上

子进程:负责管理线程

线程:处理并响应请求

event;事件驱动模型,多进程模型,每个进程响应多个请求;

主进程:同上

子进程:处理并响应请求

注意:

http-2.2:event为测试模型(CentOS6默认安装MPM不支持动态DSO机制);

http—2.4为正式(CentOS7默认)

httpd版本:

httpd-1.3:官方已停止维护:

httpd-2.0

httpd-2.2

httpd-2.4

httpd的功能特性:

CGI:common gateway interface;(通用网络接口)

虚拟主机:IP, PORT, HOSTNAME (基于ip.端口.主机名)

反向代理

负载均衡:bytraffic, bybusiness, byrequest

路径别名

丰富的用户认证机制

basic:

digest:

支持第三方模块

...

时间: 2024-08-30 08:56:46

web基础概念的相关文章

Linux集群系列之一——集群基础概念

PHP高级工程师之LInux集群(多态主机组合起来,完成一个任务) 在这里和大家分享一下多数网络黑客常用的攻击方式及预防措施. 如有不善,多提意见(QQ:1595068971-邮箱:[email protected]) 负载均衡集群LB(提高服务的病发处理能力为根本)增加处理能力 衡量标准: 病发处理能力(一次性能够处理多少个请求) 高可用集群HA(提升服务的始终在线能力为根本,不会因为宕机而导致服务不可用)增加服务可用性 衡量标准:在线时间 / (在线时间+故障处理时间) 99%,99.9%,

linux基础概念和个人笔记总结(6)

防伪码:曾经梦想仗剑走天涯,回过头,却发现还是放不下家的牵挂 后续理论的验证图文详解,我会更新,希望大家可以参考 第十一章 FTP文件传输服务 1.FTP连接 控制连接:tcp21端口,用于发送ftp命令信息 数据连接:tcp20端口,用于上传.下载数据 数据连接的建立类型: a.主动模式:服务器从20端口主动向客户端发起连接 b.被动模式:服务端在指定范围内某个端口被动等待客户端连接 2.FTP用户的类型 匿名用户:anonymous或ftp 本地用户:账号名称.密码等信息都保存在passwd

LVS 实验笔记1 一些基础概念

基础概念 rsync 同步软件 效率不高 inotify 通知 三种集群: LB: load balance 提高服务器的并发能力 HA: 高可用 high availability不会因为一台服务器宕机导致服务不可用 HP:high perfomence  高性能计算集群 并行处理集群 分布式文件系统 将大任务切割为小任务,分别进行处理 health check:健康检查 NFS:net filesystem 共享存储设备 DAS:直接附加存储 块级别交换数据 直接连到多态主机,性能好,但是要

C# 基础概念

1.     面向对象的思想主要包括:继承 多态 封装 ●       封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部. ●       继承:子类拥有父类的所有数据和操作. ●       多态:一个程序中同名的不同方法共存的情况. 有两种形式的多态– 重载与重写. 2.     什么是装箱和拆箱 装箱(boxing)和拆箱(unboxing)机制使得在C#类型系统中,任何值类型.引用类型和object(对象)类型之间进行转换,这种转换称为绑定连接.简单地

Java 技术体系基础概念

Java 技术体系基础概念 =============================================================================== 概述: =============================================================================== 编程语言: [百度百科解释] 编程语言俗称"计算机语言",种类非常的多,总的来说可以分成机器语言.汇编语言.高级语言三大类.电脑每做的

JavaBean 基础概念、使用实例及代码分析

JavaBean 基础概念.使用实例及代码分析 JavaBean的概念 JavaBean是一种可重复使用的.且跨平台的软件组件. JavaBean可分为两种:一种是有用户界面的(有UI的):另一种是没有用户界面的(无UI的),无UI的JavaBean主要负责处理事务(如数据运算,操纵数据库). JSP通常访问的是后一种JavaBean. JSP与JavaBean搭配使用的优点 使得HTML与Java程序分离,这样便于维护代码. 如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护.

varnish基础概念详解

varnish基础概念详解 比起squid更加轻量级,大致有以下几个特点: ·可以基于内存缓存,也可以在磁盘上缓存,但是就算存放在磁盘上,也不能实现持久缓存 只要进程崩溃,此前缓存统统失效,无论是在内存还是在磁盘,但是现在已经具备持久缓存功能,但是仍然在实验阶段,经常容易崩溃,而且最大大小不能超过1G 如果期望内存大小超过几十个G,比如图片服务器,纯粹使用内存,性能未必好,这时候可以使用磁盘进行缓存,或SSD X 2 做RAID 避免磁盘损坏,在实现随机访问上 ssd硬盘要比机械硬盘要好的多,如

.net基础概念

.net基础概念 1.       .NET Framework 是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件..NET Framework 具有两个主要组件:公共语言运行库(Common Language Runtime)和 .NET Framework 类库(Framework Class Library). 2.       公共语言运行库)(Common Language Runtime) 是 .NET Framework 的基础.可以

HA Cluster基础概念及实现高可用集群

HA Cluster高可用集群分以下几个步骤来说: 点我-->HA Cluster基础概念 点我-->heartbeat实现HA 点我-->corosync详解 点我-->pacemaker详解 点我-->DRBD详解 点我-->heartbeat基于crm进行资源管理 点我-->Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群 点我-->Heartbeat+MySQL+NFS 实现高可用(HA)的MySQL集群