web服务及http协议

一、web服务

1、web服务

     早期web服务使用http/0.9协议,仅支持纯文本(包括超链接)HTML;

     HTML:超文本标记语言,是专门用来开发超文本的开发语言;

     URI:统一资源标识符,用于定义全局范围内某一独立资源的命名方式;URI就像因特网上邮寄地址一样,在世界范围内唯一标识并定位信息资源。

     URL:统一资源定位符,是URI的子对象,用于描述在互联网上互联网资源的统一表示格式;

                格式:协议://主机:(端口)/路径/文件

2、web资源

      可以通过统一资源定位符唯一标记,能够让客户端访问的文件等资源,多个资源可能被整合为一个html文档。

      web服务器是web资源的宿主。web资源是web内容的源头。最简单的web资源就是web服务器文件系统中的静态文件。这些文件可以包含任意内容:文本文件、HTML文件、微软的word文件、Adobe的acrobat文件、JPEG图片文件、AVI电影文件,或所有其他你能想到的格式。

     但是资源不一定非得是静态文件。资源还可以是根据需要生成内容的软件程序。这些动态内容资源可以根据你的身份、所请求的信息或每天的不同时段来产生内容。他们可以为你现实照相中活生生的照片,也可以帮你进行股票交易,搜索房产数据库,或者从在线商店中购买礼物等。

3、http方法

      http方法就是获取web资源的方法;

      http/1.0:GET、POST、PUT、DELETE等

      MIME:多用途互联网邮件扩展;将非文本数据在传输前重新编码为文本格式,接收方能够使用相反的方式将其重新还原为原来的格式,还能够调用相应的程序来打开此文件。            MIME只用作将文本与视频及图片进行转换。

4、 web服务请求与响应简单过程

5、web服务器的主要操作

(1)建立连接----接受或拒绝客户端连接请求;
(2)接收请求----通过网络读取http请求报文;
(3)处理请求----解析请求报文并作出相应的动作;
(4)访问资源----访问请求报文中相关的资源;
(5)构建响应----使用正确的首部生成http响应报文;
(6)发送响应----向客户端发送生成的响应报文;
(7)记录日志----当已经完成http事物记录进行日志文件。

 二、http协议

1、http协议基础

     http:超文本传输协议,默认情况下,http协议就是用来实现客户端到服务器端数据传输的;并且http协议默认只传输文本文件(数据流)。

2、http的工作机制

    (1)首先会建立tcp连接,通过tcp80端口进行连接;

    (2)http发送请求

    (3)http响应

    注意:请求时非常多的。(前端语言将很多资源进行划分,而固定的服务器只能提供固定的资源,所以,很可能请求了一次,事实上生成了狠多进程。)

3、多处理模块(MPM)

    http支持MPM,因为http提供的进程访问数量有限,所以,我们要启用一些访问机制,来处理高并发流量。

   (1)MPM支持三种模式:

       prefork----队列模式(默认模式)

       work-------多线程模式

       event------多线程并发处理模式(不稳定,不建议使用)

      prefork模式:这种模式采用预派生子进程的方式,他没有线程的概念,是多进程模式,一个子进程处理一个连接,稳定,响应快,每个子进程之间相互独立,但是每个进程都要占用内存,消耗系统的资源过高。

      work模式:一个进程会生成很多个线程,一个线程处理一个http的请求,相比prefork模式更加节内存资源,但是,当一个线程崩溃,整个进程就会连同其所有线程一同挂掉。

      event模式:一个线程可以处理多个请求。

    (2)如何修改MPM模式

       在/etc/sysconfig/httpd下修改:

          #HTTPD=/usr/sbin/httpd.worker       //去掉#即可

      修改完成要重新加载配置,才可以生效。

4、http的版本

     HTTP/0.9  最早的被广泛采用的版本 原型版本,不支持多媒体内容,只支持纯文本传输。

     HTTP/1.0  第一个广泛使用的版本,现在依然被使用,能支持多媒体,但是缓存机制能力不足;

     HTTP/1.1 增强了缓存功能,当前使用的版本;

     HTTP/2.0  2001年就出来了,现在基于web的应用多数使用HTTP/2.0版本(新版本),它参考了谷歌的spdy协议,所以我们有理由相信HTTP/2.0会被广泛使用。

5、cookie机制

     (1)原理

     (2)分类(存在客户端)

         永久cookie -- 把cookie值存在硬盘上(这里需要指定cookie的保存时间),存在硬盘中,有一个过期时间,除非用户手动清除或到了过期时间,否则硬盘中的cookie不会被删除,其存在时间是长期的。

         临时cookie -- 把cookie值保存在内存上(重启流量器即失效),内存cookie由浏览器维护,保存在内存中,当浏览器关闭之后就消失了,存在时间很短。

    (3)http请求和cookie交互过程

  

    (4)cookie的缺点

      cookie会被附加到每一个http请求中,增加了流量;

      在http传输过程中cookie是明文传输,所以很不安全;

      cookie限制在4KB左右,对于复杂的存储需求是不够用的。

6、http模式(method)

     GET 普通的请求
     HEAD 之请求网站的头部信息
     POST 推送用户名或密码的时候使用的
     PUT 推送比较大的资源的时候使用的
     DELETE 发起删除对应资源的命令
     TARCE 容许客户端查看,被修改后的http请求报文(因为中间通过了代理服务器,而代理服务器会修改我们的请求表文)
     OPTIONS 客户端去咨询服务器端所能支持模式;
     还有其他很多的扩展模式 -- 例如:MOVE LOCK 等等。

7、状态码(status)

    100-199 表示服务器信息回应 100 101
    200-299 表示成功的请求
       常见的--200 ok 201 create
    300-399 表示重定向
      301 请求的URL指向的资源已经被删除:但在响应报文中通过首部Location指明了资源现在所处的新位置;这个是永久重定向:Moved Permently
      302 与301相似,但是在响应报文中,通过Location指明了资源现在所处的临时新位置;Found
      304 客户端发出了条件式请求,但是服务器发现客户端的缓存资源未曾发生改变,则通过响应状态码通知客户端:Not Modified
    400-499 客户端错误状态码
      401 需要输入账号和密码认证方能访问资源,Unauthorizad
      403 请求被禁止:forbidden
      404 服务器无法找到客户端请求的资源:Not Found
    500-599 服务器端错误
      500 服务器内部错误:Internal Server Error
      502 代理服务器从后端服务器收到一条伪响应,Bad Gatway

原文地址:https://www.cnblogs.com/hmm01031007/p/11582918.html