HTTP Server小测试程序

一个能够兼容所有特性的HTTP服务器是十分复杂的,特别是一些可选项,或者是一些非传统非标准的字段的处理,更是超级麻烦

下面这个小的web server程序,不仅仅是类socket服务端接收程序,还可以返回给客户端,可以当一个测试程序,测试客户端和代理交互情况;当然如果你手快用C语言来写Socket交互,那么请直接跳过就行了

#!/usr/bin/perl -w

use Socket;
use Ca[......]

Read more

Status-Code详细解析

Status-Code给客户端提供了事物处理结果的方式,由三位数字组成,很少听说的1XX,经常看到200,304,404等状态码,除此之外,在应用程序当中,通常根据返回码可以定位客户端和服务器的异常,所以了解他们的含义十分必要

信息性状态码100~199

这些status-code比较少见,因为是HTTP/1.1才有的

100             Continue[......]

Read more

HTTP Method

HTTP定义了一些安全方法,认为安全(比如GET,HEAD)的时候,一般来说请求是不会产生什么动作,但有些还是由web程序决定;而这个字段的作用是如果使用了一些不安全方法而产生了一些动作,那么运行HTTP应用程序可以告知用户

 

GET

请求报文中请求服务器发送某个资源

 

HEAD

同样请求服务器发送某个资源,但只响应返回头部,不会返回主体部分;这样可以使得客户端在没有获取实[……]

Read more

HTTP报文

HTTP报文就是一些简单的格式化数据块,每个报文包含来自客户端的请求,或者是服务器端的响应,报文可以通过起始行,头部和主体来描述

GET /lihui/lihui.txt HTTP/1.0
Accept: text/*
Host: www.lihuia.com


HTTP/1.0 200 OK
Content-type: text/plain
Content-length: 12

Hello W[......]

Read more

URL语法

URL地球人每天都会在浏览器里敲,它是网络资源的标准化名称,它告诉你资源来自何处,以及如何与服务器进行交互

通常URL分为三部分:

第一部分是URL的方案,可以告诉WEB客户端如何访问资源,比如使用HTTP协议,最开始输入http,除此之外还有FTP,SMTP来访问的等等

第二部分是WEB服务器的位置,也可以定位客户端所需要的资源的服务器,比如host

第三部分是资源的具体路径,也就是请求的服务器[……]

Read more

HTTP包

HTTP实时处理是公司产品的特色,今天在造数据包过程中,着实被HTTP某些字段给拦住了,每次看到HTTP PARSER的时候,被无数种情况弄得根本没动力看下去,可是网络中相比成熟的TCP/IP,应用层HTTP显得更像个迷,复杂并迷人着

Web信息都是存储在Web服务器上,也就是HTTP服务器,Web server使用的是HTTP协议,资源有文本文件,图片,视频等等;HTTP客户端就是Web浏览器,[……]

Read more

HTTP X-Forwarded-For

今天在写unit test的时候,x-forwarded-for这个域结果不一致,输入是将所有的IP域都给计算了,而输出部分仅仅把一条HTTP连接里的x-forwarded-for域算一个

一个网页请求经过了HTTP代理服务器以后,看似无法获得访问者的真实IP,因为:TCP连接是在代理和web服务器之间,而并非用户和web服务器之间的;HTTP协议是第七层协议,不会把IP层的访问者的源IP信息也发[……]

Read more