06 2016 档案

tinyhttpd ------ C 语言实现最简单的 HTTP 服务器
摘要:工作流程: 1>服务器启动,在指定端口或随机选取端口绑定httpd服务。 2>收到一个http请求时(其实就是listen端口accept的时候),派生一个线程运行accept_request函数。 3>取出http请求中method(get或post)和url,对于get方法,如果有携带参数,则q 阅读全文

posted @ 2016-06-23 11:17 `Elaine 阅读(4061) 评论(1) 推荐(0)

http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤
摘要:http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: (1) 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是T 阅读全文

posted @ 2016-06-23 00:45 `Elaine 阅读(4430) 评论(1) 推荐(1)

http请求数据的格式
摘要:最近看了tinyhttpd的服务器代理,看了看http请求数据包的格式和内容 http请求报包含三个部分: 请求行 + 请求头 + 数据体 请求行包含三个内容 method + request-URI + http-version method 包含有 post , get, head,delete 阅读全文

posted @ 2016-06-23 00:39 `Elaine 阅读(43078) 评论(0) 推荐(1)

recv函数的MSG_PEEK标志介绍
摘要:考虑下面的场景,server向client发送数据"_META_DATA_\r\n_USER_DATA_",要求"\r\n"之前的数据_META_DATA_在第一次recv中接收,剩下的recv调用读取_USER_DATA_部分的数据。因为tcp是stream协议,并且_META_DATA_数据不是 阅读全文

posted @ 2016-06-22 16:18 `Elaine 阅读(800) 评论(0) 推荐(0)

多进程并发服务器
摘要:data.h server.c client.c 阅读全文

posted @ 2016-06-16 21:09 `Elaine 阅读(412) 评论(0) 推荐(0)

协议分析
摘要:1.traceroute程序的操作过程。 traceroute主要能列出到达目的主机所经过的路由。 在ICMP中有一个IP记录路由(RR)选项,之所以还要另外开发traceroute是因为 1>IP首部中留下的选项的空间有限, 2>并不是所有的路由器都支持路由选项, 3>记录路由一般是单项的,所以发 阅读全文

posted @ 2016-06-12 21:27 `Elaine 阅读(252) 评论(0) 推荐(0)

C10问题
摘要:C10K问题是指服务器同时支持成千上万个客户端的问题,也就是concurrent 10 000 connection(这也是C0K这个名字的由来)。由于硬件成本幅度降低和硬件版本的提高,如果服务器能够解决多客户端的问题,那么也就意味着将降低每一个客户端的成本。 解决IO的策略: 1>用一个线程来同时 阅读全文

posted @ 2016-06-10 19:12 `Elaine 阅读(1137) 评论(0) 推荐(0)

[转]nginx启动期都做了哪些事
摘要:nginx是个多进程web容器,不同的配置下它的启动方式也是不同的,这里我只说说最典型的启动方式。 它有1个master进程,和多个worker进程(最优配置的数量与CPU核数相关)。那么,首先我们要找到main函数,它在src/core/nginx.c文件中。谈到源码了,这时我们先简单看下源码的目 阅读全文

posted @ 2016-06-09 21:58 `Elaine 阅读(826) 评论(0) 推荐(0)

在写一次epoll
摘要:epoll & select & poll只能处理IO相关的操作,epoll每一个操作必须注册到时间监控机制中,并且还需要进程或者线程进行管理。 多进程/多线程 和epoll相比较 epoll用在大量链接,少处理的项目中; 多线程/多进程用在少量链接,复杂的业务处理。 在QQ中,处理登陆是epoll 阅读全文

posted @ 2016-06-08 13:16 `Elaine 阅读(134) 评论(0) 推荐(0)

http协议及http协议和tcp协议的区别
摘要:http是应用层的协议,并且无连接,无状态的协议。 http协议的特点: 1.支持c/s模式 2.简单快速:客户端向服务器端传送数据的时候,只需要发送请求方法和路径,请求方法有:post,get,head。由于http协议简单,使得http服务器的程序规模小,因而通信速度很快。 3.灵活:http允 阅读全文

posted @ 2016-06-08 10:43 `Elaine 阅读(697) 评论(0) 推荐(0)

Fastcgi协议定义解释与说明
摘要:1 响应格式如(十六进制方式显示) 序列0(值01)为version,固定取1即可序列1(值06)为type,代表FCGI_STDOUT,表示应用的输出序列2 3(00 01)代表2字节的请求id,默认取1即可(准确说应该是和请求应用时发送的id一致,这里假设请求和响应的id都是1)序列4 5(01 阅读全文

posted @ 2016-06-03 21:19 `Elaine 阅读(322) 评论(0) 推荐(0)

web请求响应
摘要:转载自:SanMaoSpace 1.Web开发的定义首先看看微软对Web开发的定义:Web开发是一个指代网页或网站编写过程的广义术语。网页使用 HTML、CSS 和 JavaScript编写。这些页面可能是类似于文档的简单文本和图形。页面也可以是交互式的,或显示变化的信息。编写交互式服务器页面略微复 阅读全文

posted @ 2016-06-01 21:22 `Elaine 阅读(200) 评论(0) 推荐(0)

导航