002-http基础
2016-01-15 00:45
525 查看
002-http基础
一次完整的http请求处理过程:Server(1) 建立或处理连接:接收请求或拒绝请求; (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源; (5) 构建响应报文:服务器构建资源报文 (6) 发送响应报文: (7) 记录日志:记录客户端行为
接收请求的模型:
并发访问响应模型: 单进程I/O模型:启动一个进程处理用户请求;这意味着,一次只能处理一个请求,多个请求被串行响应; 多进程I/O结构:并行启动多个进程,每个进程响应一个请求; 复用的I/O结构:一个进程响应n个请求; 多线程模式:一个进程生成n个线程,一个线程处理一个请求; 事件驱动(event-driven):一个进程直接n个请求; 复用的多进程I/O结构:启动多个(m)个进程,每个进程生成(n)个线程; 响应的请求的数量:m*n
处理请求:分析请求报文的http请求报文首部
请求报文首部的格式: <method> <URL> <VERSION> HEADERS: (name: value) <request body>
#General Request URL:http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-2.htm Request Method:GET Status Code:200 OK Remote Address:127.0.0.1:1080 #Response Headers HTTP/1.1 200 OK Date: Thu, 14 Jan 2016 08:02:00 GMT Server: Apache/2.2.31 Accept-Ranges: bytes Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html #Request Headers GET /free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh-2.htm HTTP/1.1 Host: www.tcpipguide.com Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 Referer: http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh.htm Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-CN,zh;q=0.8,en;q=0.6 Cookie: _bizo_bzid=64638599-5dc2-4eb4-bd66-57e582884051; _bizo_cksm=0D6D6C9F77243A23; _bizo_np_stats=428%3D823%2C155%3D1834%2C428%3D6434%2C
访问资源:获取请求报文中请求的资源
web服务器,即存放了web资源的主机,负责向请求者提供对方请求的静态资源或动态资源运行生成的结果;这些资源通常应该放置于本地文件系统某路径下;此路径称为DocRoot; web服务器的资源路径映射方式: (a) docroot (b) alias (c) 虚拟主机的docroot (d) 用户家目录的docroot http请求处理中的连接模式: 保持连接(长连接):keep-alive 时间: 数量: 非保持连接(短连接):
HTTP服务器
httpd (apache) nginx lighttpd 应用程序服务器: IIS: .Net tomcat: .jsp
相关文章推荐
- 001-tcp和socket以及web
- VC++6.0网络编程Socket编程(转)
- 查看linux网络连接 连接总数
- HttpServletRequest request 相关方法 得到路径
- ScottGu博客中文版http://blog.joycode.com/scottgu/
- HTTP 头部解释
- http://code.google.com/codejam/contest/dashboard?c=1128486#s=p0
- VIEWGOOD(远古)高校网络电视台项目
- httppost
- Android Studio——通过java.net.URLConnection发送HTTP请求的方法
- VBS获取GZIP压缩的HTTP内容的实现代码
- HTTP请求
- 封装网络请求
- Micheal Nielsen's神经网络学习之二
- 网络篇-NSURLConnection
- 闪电网络与以太坊结合建立支付渠道的构想及其前景
- apache httpd安装及配置
- schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/beans/spri
- 解决当网络连接方式选择“桥接网卡”时,VirtualBox提示“未指定要bridged的网络界面”
- Lighttpd1.4.20源码分析 笔记 通用数组array.c(h)