关闭

Web服务器认识

标签: web服务器Java
183人阅读 评论(0) 收藏 举报
分类:
1.HTTP协议
    超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
2.URL
    统一资源定位符(Uniform Resource Locator,缩写为URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它
例如:
    协议名称://服务器ip地址:端口号/访问资源路径
        http://127.0.0.1:8080/index.html
3.request消息
    客户端发送到服务器端的请求消息,我们称之为请求(request),其实就是一个按照http协议的规则拼接而成的字符串 ,Request请求消息包含三部分:请求行 消息报头 请求正文
        第一部分 请求行
            格式:
            Method Request-URI HTTP-Version CRLF
   例如:
            GET  /test.html  HTTP/1.1
            各部分分别表示为:
            Method表示请求方法;一般为GET或者POST
            Request-URI是一个统一资源标识符;表示地址路径
            HTTP-Version表示请求的HTTP协议版本;
            CRLF表示回车和换行

        第二部分 消息报头 http header

          http请求报头 是如何生成的,主要有三种情况:
         1.浏览器自动生成的请求。绝大部分正常用户访问都是这类情况,只要是用户主动输入网址访问时发送的http请求,那这些头部字段都是浏览器自动生成的,比如host,cookie,user-agent, Accept-Encoding:等。
         2.浏览器插件,javascript脚本增加或者修改的header。JS能够控制浏览器发起请求,也能在这里增加一些header,但是考虑到安全和性能的原因,对JS控制 header的能力做了一些限制,比如host和cookie, user-agent等这些字段,JS是无法干预的。
         3.中间代理。如果用户请求要经过一些中间代理(比如运营商或者公司网关),中间代理能够查看和修改用户的全部数据,任何头部字段。除非我们使用了HTTPS。

            例如:
            GET /test.html HTTP/1.1
            Host: 127.0.0.1:9999
            User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
            Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
            Accept-Language: zh-CN,en;q=0.8,zh;q=0.5,en-US;q=0.3
            Accept-Encoding: gzip, deflate
            Connection: keep-alive
        第三部分 请求正文 http body
            请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的字符串信息
        注意:在第二部分header和第三部分body之间有个空行,除非没有请求正文
4.response响应
    服务器在接收和解释客户端的请求消息后,服务器会返回给客户端一个HTTP响应消息,我们称之为响应(response)。其实也是一个按照http协议的规则拼接而成的一个字符串
    HTTP响应也是由三个部分组成,分别是: 响应状态行、消息报头、响应正文
    第一部分 响应状态行
        格式如下:

        HTTP-Version Status-Code Reason-Phrase CRLF

例如:
        HTTP/1.1 200 OK

        各部分分别为:
        HTTP-Version表示服务器HTTP协议的版本;
        Status-Code表示服务器发回的响应状态代码; 
        Reason-Phrase表示状态代码的文本描述。

        CRLF表示回车和换行

    第二部分 消息报头

        HTTP消息报头包括普通报头、请求报头、响应报头、实体报头这四大类。
  每一个 报头域 都是由 名字+冒号+空格+值 组成,消息报头域的名字不区分大小写。它们的作用是描述 客户端或者服务器 的属性
                 1.普通报头:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
                 2.请求报头:允许客户端传递关于自身信息和希望的响应形式。
                 3.响应报头:允许服务器传递关于自身信息的响应。
                 4.实体报头:定义被传送资源的信息。即可用于请求,也可用于响应。
        什么是 MIME Type?

        首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过响应的消息报头里面的属性 Content-Type 来表示的,例如:Content-Type: text/HTML

表示内容是 text/HTML 类型,也就是超文本文件。为什么是“text/HTML”而不是“HTML/text”或者别的什么?MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。

      通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。XHTML 正是一个获得广泛应用的格式,因此,在 RFC 3236 中,说明了 XHTML 格式文件的 MIME Type 应该是 application/xHTML+XML。当然,处理本地的文件,在没有人告诉浏览器某个文件的 MIME Type 的情况下,浏览器也会做一些默认的处理,这可能和你在操作系统中给文件配置的 MIME Type 有关。比如在 Windows 下,打开注册表的“HKEY_LOCAL_MACHINESOFTWAREClassesMIMEDatabaseContent Type”主键,你可以看到所有 MIME Type 的配置信息

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。

常见的MIME类型

超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

    第三部分 响应正文

        响应正文就是服务器返回的资源的内容 


以上就是web服务器的认识

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:428289次
    • 积分:6231
    • 等级:
    • 排名:第4467名
    • 原创:228篇
    • 转载:106篇
    • 译文:0篇
    • 评论:57条
    博客专栏
    最新评论