http 请求流程 && 5种 IO 模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http 请求流程 && 5种 IO 模型相关的知识,希望对你有一定的参考价值。
一次完成的http请求应该有以下几个步骤:
1.建立或处理连接,server端接受请求或者处理请求。
2.接受请求,接受来自网络报文中对某一资源的请求过程
3.处理请求:对请求报文进行分析,并获取请求的资源及请求方法等信息 <补充说明b>
4.访问资源:向系统内核发起调用,获取存储在磁盘中请求报文中的资源
5.构建相应报文
6.发送相应报文
7.记录日志
<补充说明b>
http事务:request(请求) ------- response(相应) request样式 <method><URL><Version> <HEADERS> <body> responese样式 <Version><status><reason phrase> <HEADERS> <body>
<补充说明c IO类型>
同步和异步:synchronous, asyncrhonous 关注的是消息通知机制 同步:调用发出不会立即返回,但一旦返回就可以返回最终结果; 异步:调用发出之后,被调用方立即返回消息,但返回的非最终结果;被调用者通过状态、通知机制来通知调者,或通过回调函数来处理结果; 阻塞和非阻塞:block, nonblock 关注的是调用等等调用结果(消息、返回值)时的状态 阻塞:调用结果返回之前,调用者(调用线程)会被挂起;调用者只有在得到结果之后才会返回; 非阻塞:调用结果返回之前,调用不会阻塞当前线程;
<补充说明d 5种IO模型>
blocking IO 阻塞IO nonblocking IO 非阻塞IO IO multiplexing 复用行IO,用select(),poll()回调 apache的profix worker工作模式采用此模型,受限与1024边界效应 signal driven IO 事件驱动IO 通知机制: 水平触发:多次通知 边缘触发:只通知一次 asyncrhonous IO 异步IO
以上是关于http 请求流程 && 5种 IO 模型的主要内容,如果未能解决你的问题,请参考以下文章