HTTP的head,状态码及Web服务器的工作流程

HTTP协议首部: image/jpeg 动态效果:Java, Applet, JRE 动态网页:

服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本接受参数之后在服务器运行一次,
运行完成之后会生成HTML格式的文档,把生成的文档发给客户端;
例:
web: index.php 执行过程:web –> procotol –> php (运行index.php) index.html:
在该文件中可以用超链接引用N个web对象(URL) 动态网页:包含静态内容和动态内容(动态内容部分才需运行)
缓存:
URL:(统一资源定位符)HTTP报文:请求报文,响应报文 请求报文语法:响应报文语法

HTTP状态代码:

1xx: 纯信息
2xx:成功类的信息 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受(200) 
200 OK :请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。
3xx: 重定向类的信息 这类状态码代表需要客户端采取进一步的操作才能完成请求。(301) 
301 Moved Permanently :被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。
4xx: 客户端错误类的信息 (403,404) 
403 Forbidden :权限不够,服务器已经理解请求,但是拒绝执行它。
404 Not Found :请求失败,客户端请求所希望得到的资源未被在服务器上发现。出现这个错误的最有可能的原因是服务器端没有这个页面。
5xx: 服务器端错误类的信息(500,502,503,504)
500 Internal Server Error: 一般来说是因为服务器端的源代码出现错误时出现。
502 Bad Gateway :作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
503 Service Unavailable :由于临时的(暂时性)服务器维护或者过载,服务器当前无法处理请求。
504 Gateway Timeout :作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器收到响应。

注意: 某些代理服务器在DNS查询超时时会返回400或者500错误

响应报文:

每个首部域都由名称(name)和值(value)组成,中间用逗号分隔。另外,响应报文通常还有一个称作Body的信息主体,即响应给客户端的内容。

Web服务器的主要操作:

1、建立连接——接受或拒绝客户端连接请求;
2、接收请求——通过网络读取HTTP请求报文;
3、处理请求——解析请求报文并做出相应的动作;
4、访问资源——访问请求报文中相关的资源;
5、构建响应——使用正确的首部生成HTTP响应报文;
6、发送响应——向客户端发送生成的响应报文;
7、记录日志——当已经完成的HTTP事务记录进日志文件;\

例如:一个页面中包含: 10 image, 3 css, 5html,共18个资源。这18个资源是一个一个去请求、一个一个去传输的。所以现在的浏览器都是多线程的。
http, tcp: 三次握手,四次断开 http/1.1: 增强了缓存的功能 长连接

文章来源:http://blog.51cto.com/13581826/2093491

评论关闭。