http请求流程&&5种io模型

author author     2022-09-04     741

关键词:

一次完成的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

 

golangnet/http请求处理流程分析(代码片段)

先看一下GolangWebServer是如何监听请求的:srv:=&http.Server Addr:":8080", Handler:obj.App, iferr:=srv.ListenAndServe();err!=nil&&err!=http.ErrServerClosedlog.Fatalf("listen 查看详情

golangnet/http请求处理流程分析(代码片段)

先看一下GolangWebServer是如何监听请求的:srv:=&http.Server Addr:":8080", Handler:obj.App, iferr:=srv.ListenAndServe();err!=nil&&err!=http.ErrServerClosedlog.Fatalf("listen 查看详情

http协议详解&tcp&osi七层概念模型

HTTP/1.1协议浏览器发起HTTP请求的典型场景用户在浏览器中输入相应的网址,在此过程中如果存在历史访问的记录,浏览器引擎查询其内置的数据库补全相应网址浏览器引擎调用渲染引擎通过网络模块发送第一个请求浏览器接收到... 查看详情

http协议

...所有web应用程序使用的通信协议。消息模型:客户端发送请求消息,服务器返回响应消息。传输层使用具有状态的TCP协议,但HTTP协议本身不具有状态。二、HTTP请求HTTP请求消息分为消息头和消息主体(可选),消息头和消息主体... 查看详情

osi七层模型工作过程&&输入url浏览器的工作过程(超详细!!)(代码片段)

...步工作就是要对URL进行解析,从而生成发送给Web服务器的请求信息。让我们看看一条长长 查看详情

解决ios开发中不合法的网络请求地址

    NSString*constkWebsite=@"http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fr=&sf=1&fmq=1459502303089_R&pv=&ic=0&nc= 查看详情

解决ios开发中不合法的网络请求地址

  NSString*constkWebsite=@"http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fr=&sf=1&fmq=1459502303089_R&pv=&ic=0&nc=1& 查看详情

http1.0&1.1

...应用最广泛的一种网络协议。HTTP是一个客户端和服务端请求、应答的标准。使用WEB浏览器、网络爬虫或其它工具,客户端发起一个HTTP请求,到达服务器指定端口(默认80)。此时HTTP服务器端在TCP80端口监听客户端的请求,一旦收到... 查看详情

python异步http请求

】python异步http请求【英文标题】:pythonasynchronoushttprequest【发布时间】:2012-04-0300:24:34【问题描述】:我正在尝试在python中使用twitter搜索网络服务。我想调用这样的网络服务:http://search.twitter.com/search.json?q=blue%20angels&rpp=5&... 查看详情

[javaweb-http]http_请求消息_请求头&请求体(代码片段)

请求消息数据格式 1.请求行 请求方式请求url请求协议/版本 GET/login.html HTTP/1.1 *请求方式: *HTTP协议有7中请求方式,常用的有2种 *GET: 1.请求参数在请求行中,在url后。 2.请求的url长度有限制的 3.不... 查看详情

5并发编程--队列&生产者消费者模型(代码片段)

1、队列的介绍进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的创建队列的类(底层就是以管道和锁定的方式实现):Queue([maxsize]):创建共享的进程... 查看详情

使用jmeter进行http接口测试

使用Jmeter进行HTTP接口测试,也是后面进行性能测试的基础这里只讲流程先以一个最简单的音乐列表请求为例http://www.xxx.com/service/audio/recommend?sn=sssssssnnnnnnn&ts=1431485908047&sign=3cc9b856b1ba7edfd4f845e4&audio_type=6&size=5可以直 查看详情

瀑布模型&螺旋模型

...出现任何问题,例如客户要改动需求,重新定义某项业务流程。瀑布模型还有一个缺点是项目编码处在后半程,因此客户需要等待很长时间才能体验到产品, 查看详情

3分钟搞明白信用评分卡模型&模型验证

转载自:http://www.cnblogs.com/nxld/p/6365460.html信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量WOE编码方式离散化之后运用logistic... 查看详情

http概念&协议报文结构&请求响应数据报分析(代码片段)

...HTTP协议报文格式查看方式三、HTTP协议数据报格式解读http请求数据报Part1:首行关于URL关于http方法Get请求Post方法【经典面试题】GET和POST区别其他方法关于HTTP协议版本号Part2:请求头(header)HostConnect-Length和Content-TypeUser-Agent... 查看详情

05-http协议&servlet(代码片段)

...规则。http协议针对网络上的客户端与服务器端在执行http请求的时候,遵守的一种规范。其实就是规定了客户端在访问服务器端的时候,要带上哪些东西,服务器端返回数据的时候,也要带上什么东西。版本1.0请... 查看详情

tcp/ip模型&5层参考模型

OSl参考模型与TCP/IP参考模型相同点:  1.都分层  2.基于独立的协议栈的概念  3.可以实现异构网络互联  查看详情

ab&curl&elinks(代码片段)

...能测试工具,它可以测试安装Web服务器每秒种处理的HTTP请求。ab(选项)(参数)-A:指定连接服务器的基本的认证凭据;-c:指定一次向服务器发出请求数;-C:添加cookie;-g:将测试结果输出为“gnuolot”文件;-h:显示帮助信息;-H... 查看详情