您的位置:首页 > 理论基础 > 计算机网络

HTTPD 工作原理

2015-09-27 19:03 288 查看
http :HyperText Transer Protocol 超文本传输协议

超链接:能够在文档间跳转的文本,而这些链接我们称之为超链接
URI:能够很好的让客户端去识别网上不同文档的一种机制;统一资源标识符;可以在全球唯一引用某一资源的命名方式。
URL:统一资源定位符
MIME:多用途互联网邮件扩展

SMTP:简单邮件传输协议、纯文本
MIME:将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够调用相应的程序来打开此文件。

Base64就是一种文本编码格式
动态效果:
Java,Applet,JRE

动态网页:
在服务器端存放的文档非HTML格式,而是编程语言开发的脚本,脚本接受参数之后在服务器运行一次,运行完成之后会生成HTML格式的文档,并且把生成的文档发给客户端;
包含静态内容,和动态内容。动态内容部分需要在内核空间运行,生成html文档一并返回客户端

在客服端发出请求通过服务器解析FQDN(主机名).
HTTP报文:
请求报文:
资源获取方法:<method>
你请求的资源是什么:<request-URL>

对应请求资源协议的版本号:<version>

httpd协议的首部:<headers>

书写格式如下:
<method> <request-URL> <version>
<headers>

<entity-body> 报文主体
相应报文:
<version> <status>状态码 <reason-phrase>
<headers> 响应报文首部

<entity-body> 报文主体
状态代码:
1××:纯信息
2××:成功类状态码 (200正常相应;reason-phrase告诉你201;202是如何成功的)
3××:重定向类的信息 (301:永久重定向;302:临时类重定向;304:没有发生任何改变)
4××:客户端错误泪信息(404:请求了一个没有文件;)
5××:服务器端错误信息(5开头)
#########################################################################
请求报文:
GET / HTTP/1.1 请求主页
HOST: www.mageedu.com 明确说明是哪台主机
Connection:keep-alive
响应报文:
HTTP/1.1 200 OK (协议版本 200正常相应 ok告诉你请求的报文存在)
X-Powered-By:PHP/5.2.17 (说明首部 是通过PHP解释器解析的 )
Vary: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/1.1;
增强了缓存的功能
#############
server模型
单线程:
来五个人一个一个排队,一个一个响应
多线程:
他自己不处理,生成一个子进程去处理,并发能力增加,访问量不大可以用
单进程相应多个请求:
多进程响应多个请求:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4
常用浏览器:IE

Firefox

Chrome

Opera

Safari
常用web服务器
Apache->httpd

IIS 应用程序服务器

nginx

lighttpd

thttpd

应用程序服务器:
IIS
tomcat(apache 开源)
Websphere(IBM JSP)

Weblogic (Oracle,JSP,commodity)

JBoss (RedHat,重新封装的tomcat)

###########################################
之后的课程主要讲httpd nginx 缓存服务器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息