菜鸟学Linux 第051篇笔记 web-server, http

菜鸟学Linux 第051篇笔记  web-server, http





HTTP (HyperText Transfer Protocol): 超文本传输协议


超链接:


web

http version 0.9  纯文本(超链接), ASCII

HTML HyperText Mark Language

URI Uniform Resource Indentifier 统一资源标识符

统一:路径格式上的统一

URL Uniform Resource Locator

protocol://HOST:port/path/to/file

web资源 = web对象

多个资源很可能被整合为一个html文档

http方法:

http version 0.9  get

http version 1.0 put post delete head 等等

MIME (Multipurpose Internet Mail Extension) 多用途互联网邮件扩展

SMTP (Simple Mail Transmission protocol) 纯文本

MIME 将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新

 还原为原来的格式,还能够调用相应的程序来打开此文件

 Base64 一种文本编码格式

 

 

动态效果

java Applet, JRE  重量级



动态网页 服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本接受

 参数之后在服务器运行一次,运行完成之后生成HTML格式的文档,把生

 成的文档发送给客户端

 

web index.php

web server --> protocol --> php解释器 (运行index.php) --> 生成html文档

index.html

可以引用N个对象,url

动态网页: 包含静态内容和动态内容

动态内容部分才运行

http 报文  请求报文 、 响应报文

请求报文

<method> <request-URL> <version>

<headers>

<entity-body>

响应报文

<version> <status> <reason-phrase>

<headers>

<entity-body>

状态代码: <status>

1xx 纯信息

2xx "成功"类信息 (200, 201, 202...)

3xx 重定向类信息 (301, 302, 304...)

4xx 客户端错误类信息 (404)

5xx 服务器端错误类信息



e.g.

请求报文

GET / HTTP/1.1

HOST: www.mysky.com

connection: keep-alive

响应报文

HTTP/1.1 200 OK

X-Powered-By: PHP/5.2.17

Very: Accept-Encoding,Cookie,User-Agent

Cache-Control: max-age=3, must-revalidate

Content-Encoding: gzip

Content-Length: 6931

web服务器的主要操作

1、建立连接——接受或拒绝客户端连接请求;

2、接收请求——通过网络读取HTTP请求报文;

3、处理请求——解析请求报文并做出相应的动作;

4、访问资源——访问请求报文中相关的资源;

5、构建响应——使用正确的首部生成HTTP响应报文;

6、发送响应——向客户端发送生成的响应报文;

7、记录日志——将已经完成的HTTP事务记录进日志文件;


http, tcp 三次握手,四次断开

http/1.1

增强了缓存的功能

长连接


Server 并发响应模型

单进程、单线程

多进程、多线程 (稳定、并发能力比前者增强但进程太多占据内存大)

单进程、多请求

多进程、多请求

httpd:MPM

prefork

work

event

web c/s

c: Client Agent (browser, spider)

S: Server 

Client-->request-->Server

URL

Http method: GET HEAD POST PUT DELETE TRACE OPTIONS CONNECTION

HTTP headers

name:value

HOST:www.mysky.com

connection:keep-alive

Server-->response-->Client



Client 

IE

Firefox

Chrome

Opera

Safari

Server

Apache --> httpd

IIS 应用程序服务器

nginx

lighttd

thttpd


应用程序服务器

IIS

tomcat (apache, JSP, opensource)

Websphere (IBM,JSP,商业)

Weblogic (Oracle,JSP,商业)

JBoss (RedHat)


www.netcraft.com 

互联网数据调研

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1883559如需转载请自行联系原作者


Winthcloud

上一篇:Java 网络编程实战(一) - 简介


下一篇:《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之79——BREW应用间通信之事件传递