1 http

C/s

Client: User Agent,http request

Server: web server,http response


requeset/response


ASCII: html (http) 

MIME: Multipurpose Internet Mail Extensions 非文本 编码成为 文本 展现给客户端


web object web resource (URL)

css javascript p_w_picpaths html 独立取回

内容类型的标识

主/子

text/html, p_w_picpaths/jpeg


URL 统一资源定位符号


2 内容传输到服务器上面

http method

get

head  只返回相应头部即可

post

put

delete

options 服务器对请求支持的方法

trace 追踪代理服务器

connect 

http

TCP/IP

http request  请求报文

method url version

headers

request body


http response 响应报文

version status_code reson 

headers

body

状态码:

1xx:一般响应

2xx:正常相应

3xx:重定向类

4xx:错误类,客户端

5xx:服务器错误

响应模型:

单进程模型

多进程 【服务器线程】 浏览器现在基本都支持多线程请求

一进程处理多个请求,每个请求使用一个线程

多个进程处理n个请求

响应的网卡只有一个。多路复用一个有限资源

IO模型  


同步 阻塞

需要时间频率、步调一致

同步阻塞 信号时间长度 跟解码时间频率有关

时间频率很重要啊。晶振啊


异步 非阻塞 【忙等待 主动询问进度 效率低 但是非阻塞】


同步/异步  阻塞/非阻塞  模型


同步 阻塞

:完成与否  闲等

同步 非阻塞

:忙等

异步 阻塞

:需要 同步通知信号

异步 非阻塞

:执行函数回到


epoll: 

边缘触发

水平触发

select: 

内核函数


异步 非阻塞:


apache: MPM模块

【过时】perfork:多进程,每个请求用一个进程响应,背后用的就是select

worker:多进程(每个进程可生成多个线程),每个请求用一个线程响应

event:事件模型,多进程,每个进程可同时响应多个用户请求,基于事件实现。

高并发实现模式

基于线程:worker

基于事件:event

系统运行后,分成内核空间,用户空间

IO:网络IO,磁盘IO:


线程抖动,过快也不好。需要各种加速