从零开始一个http服务器(四) 代码地址 : https://github.com/flamedancer/cserver git checkout step4 运行: make clean && make && ./myserver.out 测试: 浏览器打开 http://127.0.0.1:9734/ response 返回文件 根据request 动态返回 response Makefile 读取文件内容并作为body返回 列出目录下文件 Makefile 看看我…
从零开始一个http服务器(三) 代码地址 : https://github.com/flamedancer/cserver git checkout step3 运行: gcc request.h request.c response.h response.c main.c tools/utils.c tools/utils.h && ./a.out 测试: 浏览器打开 http://127.0.0.1:9734/ response 构造 观察response结构 定义并返回respon…
从零开始一个http服务器-模拟cgi(五) 代码地址 : https://github.com/flamedancer/cserver git checkout step5 运行: make clean && make && ./myserver.out 测试 浏览器打开 http://127.0.0.1:9734/action/show_date 模拟cgi:用外部程序来优化 动态 response cgi解释 调用外部程序 cgi解释 上一节中,我们确实是实现了动态的…
从零开始一个http服务器(六)-多路复用和压力测试 代码地址 : https://github.com/flamedancer/cserver git checkout step6 运行: make clean && make && ./myserver.out 测试 浏览器打开 http://127.0.0.1:9734/action/show_date 多路复用和压力测试 多路复用 压力测试 多路复用 多路复用意义 到目前为止,服务器的基本业务功能我们是实现了.但好的…
从零开始一个http服务器 (二) 代码地址 : https://github.com/flamedancer/cserver git checkout step2 解析http request 观察收到的http数据 解析 request 的 method url version 解析 header 解析 body 观察收到的http数据 上一节我们完成了一个简单的基于TCP/IP的socket server 程序.而HTTP正式基于TCP/IP的应用层协议,所以只要我们的程序能读懂HTTP数…
从零开始一个http服务器 (一) 代码地址 : https://github.com/flamedancer/cserver git checkout step1 一个简单的socket server 从helloworld开始 回顾c语言的socket 通信 一个简单的socket server 用telent测试 从helloworld 开始 先来回顾下c语言的,c语言的helloword程序如下 // main.c #include<stdio.h> int main() { prin…
前言 从零开始用 Flask 搭建一个网站(三) 介绍了网页前端与后端.前端与前端之间数据的交流.本节主要介绍一下如何应用 Flask-OAuthlib, 使用 Flask-OAuthlib 就可以轻松地请求第三方应用提供的 API.GitHub 上 example 给出了一些如何使用的简单例子,但是就实际运用来说还有需要注意的地方. 安装与初始化 在终端中使用命令: pip install Flask-OAuthlib 或者: easy_install Flask-OAuthlib 就可以完成…
一.引言 在自学node.js的过程中有一个非常重要的框架,那就是Express.它是一个基于NodeJs http模块而编写的高层模块,弥补http模块的繁琐和不方便,能够快速开发http服务器.这里,就要用Express创建一个Web服务器,用来深入的理解这个框架,并熟悉创建Web服务器的过程. 二.核心概念--中间件 Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架:从本质上来说,一个 Express 应用就是在调用各种中间件. 中间件(Middlewa…
一.超文本传输协议 Web服务器和浏览器通过HTTP协议在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答.HTTP协议使用可靠的TCP连接,默认端口是80.HTTP的第一个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1.HTTP/1.1由 RFC 2616定义(pdf格式). 本文只简要介绍HTTP 1.1的相关知识,但应该足以让你理解Web服务器和浏览器发送的消息.如果你要了解更多的细…
一个用户的Request是如何经过Web服务器(Apache,Nginx,IIS,Light)与后端的动态语言(如PHP等)进行交互并将结果返回给用户的呢? 本文浅谈个人观点,可能有误,欢迎拍砖,共同学习. 一. 首先明确几个概念,以便后续说明 CGI:(Common Gateway Interface)Http服务器与后端程序(如PHP)进行交互的中间层. 工作原理及处理方式(fork-and-execute模式): 1.当Web Server有Request到达 2.fork一个CGI进程或…