web服务器

http:

超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

超链接:将不同服务器的信息连接起来。

超文本:包含了超链接的文本。

html:

超文本标记语言,HyperText Mark Language。格式如下:

<html>
    <title>浏览器标签页中显示的 标题</title>
    <body>
        网页的实际内容
    </body>
</html>

http属于应用层协议,需要基于TCP/IP的通信子网传输。

端口号:用来标记进程的地址。也就是当客户端请求到达web服务器后,知道该和哪个进程通信。

动态端点:用户请求的是一个程序,而不是静态的html页面。

客户端动态:根据用户请求的页面根据时间、请求方法等而临时生成的页面。

           早期http版本使用applet工具,在客户端的浏览器上执行后,展示不同页面。

           applet是一段java代码,需要浏览器有一个java虚拟机。

当java代码被下载后,被java虚拟机执行以展示页面。

           但是服务器无法控制客户端,所以非常不安全。

服务端动态:

    CGI: Common Gateway Interface通用网关接口

    不同于静态html的请求,比如,当客户端请求了当前时间时。

    此时如果在服务器简单的放一个可以执行的bash脚本获取时间时,

    如果使用静态html,那么只是获取bash脚本内容。

    如果是CGI,则可以将bash脚本转交给bash进程执行,

    然后再将结果返回http,最后由http返回最终的信息给用户。

httpd/0.9:stateless

httpd/1.0:MIME、keep-alive

MIME:

   Multipurpose Internet Mail Extesions,多用户互联网邮件扩展协议。

   由于http传输的只是纯ASCII文本信息,所以在用户请求MP3、VIDEO等时,就需要MIME协议

   将这些信息转码为文本信息,然后客户端浏览器再将这些信息转换为MP3。

   而播放MP3时,则需要客户具有这样的外部播放器,或者是浏览器内置的插件。

   格式:

   资源主类型/次类型(major/minor)

   image/jpg

   image/gif

   text/html

   video/quicktime

   application/x-httpd-php

   

keep-alive:

   早期客户端建立一次TCP连接时一次请求只能返回一次数据,而当客户端请求大量数据时,

   则需要重复的进行TCP的3次握手4次断开。这样不仅影响服务器性能,而且影响客户体验。

   所以keep-alive的出现,使得一次TCP连接,使得客户端可以请求多次内容。

URI:

   统一资源标识符,Uniform Resource Identifier

   用于标识不同的网站。

   URL:统一资源定位符,Uniform Resource Locator,属于URI的子集。但是目前与URI不加区分。

       格式:scheme://[username:password@]HOST:port/path/to/source

             http://caduke.blog.51cto.com

   URN:统一资源命名符


http事物:一个请求(request)与其对应的相应报文(respone)


http方法:

   GET   :完整请求一个资源。

   HEAD  :仅响应首部。

   PUT   :上传数据,不安全。

   DELET :删除数据,不安全。

   OPTIONS:返回请求的资源 所支持的方法 的方法。

            也就当客户端不知道服务器有几种方法时,所以发送options询问。

   TRACE:追求一个资源请求中间所经过的代理。


http缓存机制:

   私有缓存:客户端浏览器自身的缓存。

   公共缓存:比如百度将自己不经常更新的首页内容放在联通各地的服务中。


HTTP的响应码:

   1xx: 信息性状态码

   100, 101

   2xx: 成功状态码

   200:OK[常用]

   3xx: 重定向状态码

   301: 永久重定向, 告诉资源已经永久转移

       Location响应首部的值(head)仍为当前URL,因此为隐藏重定向;

   302: 临时重定向,暂时性的转移资源

       显式重定向, Location响应首部(head)的值为新的URL

   304:Not Modified没有修改,

       也即是在使用缓存时,对于经常不改动的信息,

       返回304表示刚才没有改过,浏览器可以使用本地缓存

   4xx: 客户端错误状态码

   403:表示服务器能够得到客户端请求,但是客户端没有权限去访问资源

   404: Not Found

   5xx: 服务器端错误状态码

   500: Internal Server Error服务器在执行或配置上有问题

   502: Bad Gateway

       代理服务器找不到上级的代理或根,认为自己错误了

   503:服务不可用

   504:Gateway Timeout

       二级代理可以联系到一级代理,但是在有限的时间内,一级代理没有给于响应


http报文格式:

   起始行:

   首  部:可以有多个

   主  体:      


request(请求报文首部):

   <method请求方法> <request-URL请求的资源路径> <version>

   <headers首部,可以多个>

   <entity-body请求的主题部分>

验证:

   web服务可以使用telnet命令查看:

   

# telnet 192.168.1.210 80
    Connected to 192.168.1.210.
    Escape character is ‘^]‘.
    GET / http/1.1  (这里可以是上面的几种方法比如HEAD、OPTIONS)
    host: 192.168.1.210  (这里需要两次回车)
HTTP/1.1 200 OK
Date: Wed, 12 Mar 2014 17:01:47 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Wed, 12 Mar 2014 16:56:50 GMT
ETag: "e0891-54-4f46bb90e3639"
Accept-Ranges: bytes
Content-Length: 84
Connection: close
Content-Type: text/html; charset=UTF-8


response(回应信息)







web服务器,布布扣,bubuko.com

web服务器

上一篇:MySql中MySqlParameter的用法


下一篇:MySQL有哪几种日志文件?