
自己动手写web服务器
文章平均质量分 71
教你如何自己动手一步一步的写一个简单的web服务器,
Reage--
这个作者很懒,什么都没留下…
展开
-
web服务器对url中的相对路径的处理("./", "//","../")
本次为了方便展示和调试,并没有将代买写入到真实的运行环境,而是单独写了一个test程序,使用的思路主要是回溯。首先记录本次的开始位置,情况一:如果本次得到内容时“./”,回溯到本次开始匹配的位置即可。情况二:如果本次得到的内容是"/",回溯到本次开始匹配的位置即可。情况三: 如果本次的到的内容时“../",首先回溯到本次开始匹配的位置,并且删除上一级目录其他情况: 直接写入本次原创 2013-05-13 21:39:43 · 4982 阅读 · 0 评论 -
自己动手写web服务器之虚拟端口支持
为什么需要支持虚拟端口? 如果不支持虚拟端口,每一个ip只能对应一个网站。再对应别的域名就需要加端口了。支持虚拟端口的原理?? 首先,我们知道,当多个域名与一个ip相对。DNS只能提供ip地址,无法提供端口号。所以web browser无法知道多个域名与一个ip对应的时候那个域名应该使用哪个端口。当用户不能提供端口web browser只能使用80默认端口了。原创 2013-03-26 17:30:34 · 2302 阅读 · 0 评论 -
基于epoll实现的一个简单web服务器
本文使用epoll建立一个简单的web服务器。通过epoll实现对过个端口的管理,非阻塞的数据发送。(注意本文中的使用没有错,但是在实际应用中是无法处理同一时间超过五个以上的链接,稍后会写出可以处理大批量的链接的代码。)使用到数据结构typedef union epoll_data { void *ptr; int fd;原创 2013-03-17 09:39:39 · 2960 阅读 · 0 评论 -
C语言插件开发模式
以前总是不明白为什么不同的模块是相互独立的编译,相互之间不存在的调用关系, 怎么做到在使用的时候加载不使用的时候卸载掉? 现在总算是明白了。其实就是将一个功能做成一个动态库,在window中叫dll,在Unix/Linux中叫做so。通过配置在运行的时候,在运行的时候,通过一些特殊的函数对dll或者so进行操作。找到函数的地址,调用函数。在使用函数的时候找函数,不是使用的时候释放就可...原创 2013-02-24 00:06:17 · 4776 阅读 · 6 评论 -
自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
web服务器为什么要压缩数据? web服务器如果将要发送的网页经过压缩后,待发送的数据将会减少一半左右,将会节省很大一部分的带宽,从而提高自己的并发量和减少网页传输时间。加快网页的浏览。 是不是web服务器开启压缩一定会提高性能? 不一定的,因为每次压缩,都需要对文件进行压缩算法。将会消耗一定cpu和I/O的。因此,当文件较小时没有必要开启压缩功能原创 2013-01-18 16:01:19 · 6227 阅读 · 0 评论 -
自己动手写web服务器三(web服务器是如何处理浏览器取消的请求的)
对于web服务器,要尽量的减小服务器的负担。如果,浏览器已经取消请求连接,web服务器就不应该再向浏览器发送页面的数据了。我本次是测试web服务器是如何知道浏览器已经取消了请求哪? 如果浏览器取消请求,web服务器继续向浏览器发送请求,将会造成web服务器的崩溃。在高级语言中种称之为异常也叫做异常中断,但是在C语言中没有。可是,C语言中的信号量提供了类似异常的功能。但是很多书上对原创 2012-12-10 18:22:44 · 5030 阅读 · 1 评论 -
通过测试浏览器对网页中元素请求,提出减少浏览器请求的建议
最近一直在学习linux网络编程这一块的内容,自己做了一个简单web服务器,以前无法确切的了解web浏览器访问网页的的请求过程。现在有着样的条件了,所以就自己实现一下看看过程了。浏览器展示一个网页的过程:(不涉及本地缓存,假设本地没有缓存)浏览器向服务发送请求,请求一个页面。服务器响应请求,向浏览器发送页面。浏览器加载页面,如果有外部文件,转向4步,没有结束原创 2012-12-09 17:01:21 · 2498 阅读 · 0 评论 -
自己动手写web服务器二(处理get请求)
主要实现功能,处理浏览器的get请求信息,发送网页文件。处理404、403等错误。1.实现绑定本机机器的1024端口作为ReageWeb服务提供网页服务的端口。(避免与机器上装有web服务器产生端口冲突)2.实现get获取网页方式。3.实现index.html作为网站的首页面目前程序在ubuntu12.04中运行成功,没有出现错误的。程序的下载地址:包含源文件、网站首页、m原创 2012-11-21 13:34:57 · 5598 阅读 · 3 评论 -
自己动手写web服务器一(浏览器的访问信息)
要协议一个web服务器,需要了解http协议,下面我们来看一下当浏览器请求网张的时候向web服务器发送的数据,我使用的是ubuntu 中telent展现一个下过程。 我需要一个简单的网站来演示一下,我装了一个apache。来完成成这个过程。下面为过程展示。其实,访问一个网站就是浏览器web服务器指定端口发送信息,然后,web服务器向浏览器发送网页的内容,1。使用tel原创 2012-10-15 17:06:06 · 5269 阅读 · 0 评论