文档章节

http权威指南 - 5.web服务器

dfatxm
 dfatxm
发布于 2016/12/01 17:09
字数 966
阅读 18
收藏 1

实现了HTTP和相关的TCP连接处理,负责管理Web服务器提供的资源,以及对Web服务器的配置、控制及扩展方面的管理。

各种不同的形式:

  1. 通过软件Web服务器:运行在标准的、有网络功能的的计算机系统上,如:Apache, Nginx, IIS
  2. Web服务器设备:预先打包好的软硬件解决方案。
  3. 嵌入式Web服务器:嵌入到消费类产品(比如打印机)中去的小型Web服务器。

Web服务器会做哪些工作:

  1. 建立连接。接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭;
  2. 接受请求。从网络中读取一条HTTP请求报文;
  3. 处理请求。对请求报文进行解释,并采取行动;
  4. 访问资源。访问报文中指定的资源;
  5. 构建响应。创建带有正确首部的HTTP响应报文;
  6. 发送响应。将响应回送给客户端;
  7. 记录事务处理过程。将已完成事务有关内容记录在一个日志文件中;

不同的Web服务器结构会以不同的方式为请求服务:

  1. 单线程Web服务器:一次只处理一个请求,直到其完成为止;
  2. 多进程及多线程Web服务器:使用多个进程,或高效的线程同时对请求进行处理;
  3. 复用的I/O服务器:为了支持大量的连接,很多Web服务器都采用了复用结构。在复用结构中,要同时监视所有连接上的活动。当连接状态发生改变时,就对那条连接进行少量的处理,处理结束之后,将连接返回到开放连接列表中,等待下一次状态变化,只有在有事情可做时才会对连接进行处理,在空闲连接上等待的时候并不会绑定线程和进程;
  4. 复用的多线程Web服务器:有些系统会将多线程和复用功能结合在一起,以利用计算机平台上的多个CPU;

Web服务器对资源的映射及访问:

Web服务器是资源服务器,可以接受对目录URL的请求,其路径可以解析为一个目录,而不是文件;

如果用户请求目录URL时,没有提供默认的索引文件,而且Web服务器没有禁止使用目录索引,很多WEb服务器都会自动反悔一个HTML文件,此文件中会列出那个目录中的每个文件的文件名、文件大小和修改日期,以及URL链接。

Apache 禁止自动生成目录或索引文件指令: Options -Indexes

构建响应:

一旦Web服务器识别出了资源,就执行请求方法中描述的动作,并返回响应报文。响应报文中包含有响应 状态码、响应 首部。如果事务处理产生了响应 主体,就将内容放在响应报文中回送过去。

响应报文中通常包括:

  1. 描述了响应主体MIME类型的 Content-Type 首部;
  2. 描述了响应主体长度的 Content-Length 首部;
  3. 实际报文的主体内容;

Web服务器要负责响应主体的MIME类型,可以用文件的扩展名说明MIME类型,

常见的MIME类型如下:

  1. audio / mpeg mpeg
  2. image / png gif
  3. text / plain txt

重定向:

Web服务器有时会返回重定向响应而不是成功的报文,可以将浏览器重定向到其它地方来执行请求;

可用于下列情况:

  1. 永久删除的资源;
  2. 临时删除的资源;
  3. URL增强;
  4. 负载均衡;
  5. 服务器关联;
  6. 规范目录名称;

© 著作权归作者所有

共有 人打赏支持
dfatxm
粉丝 3
博文 66
码字总数 20630
作品 0
厦门
前端工程师
私信 提问
Android中从服务器获取数据的几种方法利与弊?

最近被这个问题困扰着,想用android 开发个小软件。主要功能是从服务器读取数据到android上显示。由于个人对android开发不太了解,请大神们给些指点。 我能想到的数据传输模式有以下几种: ...

姓骚扰
2012/08/14
3.6K
3
[长沙]长沙有哪些创业团队,求带?

本人一年运营商服务器开发经验,从事unix/linux下的c++开发。因为不喜欢在公司已有的框架的上做业务开发,所以果断辞职了。希望找一份web开发的工作,服务端和前端都可以,要求是一定要在长沙...

fanzc
2012/11/13
557
0
golang Http Request

一起看一下golang的HTTP包怎么write Request信息 先看一下看golang http Request的struct,不解释,慢慢看(HTTP权威指南,RFC文档) type Request struct {// Method specifies the HTTP me...

golang_yh
2015/11/16
339
0
PHP程序员进阶之路好书籍推荐

今天给PHP程序员们推荐几本PHP进阶好书,PHP程序员们不要以为自己现在已经工作就放弃了一个上进的心,现在互联网发展这么快,小心长江后浪推前浪,前浪死在沙滩上哦。。。 · 《UNIX网络编程...

Yomut
2018/04/25
0
0
Mycat读写分离笔记Windows

Mycat读写分离笔记Windows 自己搭了一个运用Mycat中间件搭建了一个读写分离的demo,昨晚还在奋战当中,因为连接mycat的时候老是报错:No Mycat DataBases selected.尝试了很多的方法,然后还...

推荐码发放
2018/04/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 孤独到都和病毒发生了感情了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# 逃跑计划《一万次悲伤 (Live)》 《一万次悲伤 (Live)》- 逃跑计划 手机党少年们想听歌,请使劲儿戳(这里) 现在...

小小编辑
今天
129
9
test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
3
0
Android webview热门组件agentweb:4.0.2无法自适应的问题

Android webview热门组件agentweb:4.0.2无法自适应的问题 //设置自适应屏幕,两者合用mAgentWeb.getAgentWebSettings().getWebSettings().setUseWideViewPort(true); //将图片调整到适合w...

Gemini-Lin
今天
5
0
如何维护一个自己的 golang doc 服务

本文内容是如何维护一个golang 在线的doc 服务。 1 什么是godoc ? godoc 是 golang 官方提供的文档生成工具, 2 为什么要有godoc ? 我们经常遇到一个问题,就是代码和文档不一致,线上代码版...

鼎铭
今天
5
0
js中的对象创建的模式以及继承模式

对象创建模式: 工厂模式 构造函数模式 原型模式 继承模式 原型式继承 寄生式继承 构造函数 原型式和构造函数的组合式(缺点:运行两次超类类函数,积累函数的属性被挂载在原型对象上和实例对...

莫西摩西
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部