从点击到呈现 — 详解一次HTTP请求(3)

请求进入服务器之后,服务器上的的 http 监听进程会得到这个请求,然后一般情况下会启动一个新的子进程去处理这个请求,同时父进程继续监听。http 服务器首先会查看重写规则,然后如果是文件真实存在,例如一些图片,或者 css js 等的静态文件,就会直接把这个文件返回,如果是一个动态的请求,那么会根据 url 重写模块的……

阅读全文

从点击到呈现 — 详解一次HTTP请求(2)

上回说道服务器启动了监听服务,准备迎接来自客户机的请求。那么,我们以一次典型的浏览请求来解析: 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,对于 google chrome 那种变态的浏览器,他甚……

阅读全文

printf 一定需要 stdio.h 吗

刚刚看到一个范例代码,调用了 printf 函数,但是却没有包含 stdio.h 的头文件,这种写法第一反应就应该是不对的啊,本着动手实验的原则,试了一下 zrj@vm:~/c/test$ cat test.c int main() { printf("hello worldn"); return 0; } zrj@vm:~/c/test$ gcc -o test test.c test.c: 在函数‘main’中: t……

阅读全文

子数组最大和

昨天笔试看到一个求子数组最大和,参考这里,http://blog.csdn.net/v_JULY_v/…,写了一下,复杂度 O(n) #include <stdio.h> int max_sum(int *a, int n) { int max = a[0]; int sum = 0; for (int i=0; i<n; i++) { if (sum < 0) { sum = a[i]; } else { sum += a[i]; } if……

阅读全文

最短脚本下载文件

今天遇到一个题,给定一个文本文件,每一行一个 url,用脚本把他们下载回来,语言不限,越短越好 简短这种事情首先想起 python import urllib f = open("url.txt", "r") for line in f: urllib.urlretrieve(line, line[line.rfind("/") + 1:-1]) f.close() 准备的 url.txt,需要注……

阅读全文

蛇形填数

之前因为家里的原因,回乡下一个星期,期间都没有机会,也没有心情写代码,一个星期就这么毫无长进,罪过。 看到一个蛇形填数的题目,搞了搞,代码如下 #include <stdio.h> #include <stdlib.h> void print(int **a, int n) { for (int y=0; y<n; y++) { for (int x=0; x<n; x++) { printf……

阅读全文

生成可重集的排列

刘汝佳在算法竞赛入门经典,http://book.douban.com/subject…,的 118 页提到生成一个可重集的全排列问题,跟上次的 生成一个字符串的全排列 很相像,但是写法却巧妙很多 #include <stdio.h> void quick_sort(int a[], int left, int right) { int i=left, j=right; int povit = a[(i+j)/2]; while (i ……

阅读全文