菜鸟学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