标签:httpd
HTTP
HTTP:全称为HyperText Transfer Protocol(超文本传输协议),是目前互联网使用最多最广泛的一种协议。在早期的HTTP协议版本(http/0.9)中,http服务仅支持二进制(ASCII)的纯文本文件。而在http/0.9以后的版本中,http协议可以支持MIME机制,使得http协议可以支持多种格式的文本文件,例如视频、图像、语音等等。从而丰富了http协议的发展。
什么是MIME?
MIME:全称是Mulitpurpose Internet Mail Extension,多用途邮件扩展,MIME是一种协议,早期应用于邮件系统,后来该协议也被应用到了浏览器当中,所以至今我们打开某个网页时,可以出现多种格式的文本信息。MIME的工作机制是将非文本信息在传输前重新编码为文本格式,接收方能够用相反的机制将其还原为原来的格式,并且可以调用相应的程序来打开此文件。
我们在打开某一个页面时,常常看到有图片、视频及文档等信息,我们把这样每一个信息叫做一个资源或者也可以称作一个web对象。多个资源或者web对象就组成了一个html格式的页面。 而我们常常打开浏览器时,在浏览器上面需要输入网址,才可以访问那个页面的资源。这个网址就是我们常说的URL。
URL:全称Uniform Record Locator,统一资源定位符,它明确指定了资源所在的位置。
URL的格式为: protocol://HOST/path/to/file,例如http://www.xsl.com/a.html
有时候我们也会常常看到URI,那么URI是什么呢?它和URL是什么关系?
URI:全称Uniform Record Indentifier,全局统一资源标识符,它笼统地定义了资源且是全局的,不限于客户端和服务器端。而URL是具体的定义了这个资源的所在位置,URL其实是URI的子对象而已。
但是我们常常在点击某个页面时,浏览器上面显示的不是以.html为后缀的URL,而是以.php为后缀的URL。这是什么原因造成的呢?
这是因为在我们的web服务器上面存的并不是html格式的文件,而是一些脚本文件,当客户端发起请求时,web服务器会调用某个协议来执行这些脚本,这些脚本执行完毕后,就会生成一个html格式的文档,web服务器在将生成的HTML格式的文档返回给客户端。这就是我们为什么看到的是一个html格式的文档,而浏览器上面显示的就是以.php为后缀的URL。而这种脚本文件是通过PHP语言来实现的。而这种机制就是动态网页的实现机制。
对于动态网页来说,既包括静态内容也包括动态内容。
静态内容一般指的是图片等信息,这些静态内容是直接存在服务器是上的。
动态内容需要通过脚本来执行,所以一般的,只有动态内容才会运行脚本,静态内容不会。
在有些时候,我们打开某个网页会很快,但打开其他的页面时会很稍微慢一点,这是为什么呢?
这是在http/1.0以后,由于增加了缓存机制,所以当我们第一次打开某个网页时,web服务器会将这个URL缓存在本地,所以第二次打开网页时明显要比第一次快些。因此,建议大家不要随便清理缓存,这样会导致网页加载速度比较慢哦!
http的报文格式
由于http是基于tcp协议的,所以在建立http会话的过程中,会经历过三次握手和四次断开。因此,当客户端发起时,服务器必须对该请求给予响应。http协议的端口号是80
http报文的请求格式
<method> <request-URL> <version>
<headers>
<entity-body>
http报文的响应格式
<version> <status> <reason-phrase>
<headers>
<entity-body>
其中<method>表示为请求的方法。一般常用的方法有GET、POST、HEAD、DELETE、PUT等等
<request-URL>表示请求的URL地址
<version>表示http的版本号
<headers>表示http的首部信息
<entity-body>表示的是报文主体
<status>表示的是响应请求报文的状态码
这些状态码主要有:
1xx:表示纯信息
2xx:表示成功类的信息(例如:200、201、202...)
3xx:表示重定向类的信息(例如301,302...),表示该资源不在此处,重定向到其他服务器或其他位置去了。
4xx:表示客户端错误类信息(例如404)
5xx:表示服务器端错误类信息
<reason-phase>:用来描述请求的结果或者理解成用来描述状态码的文本信息。
本文出自 “linux学习之路” 博客,谢绝转载!
标签:httpd
原文地址:http://xslwahaha.blog.51cto.com/4738972/1548852