zoukankan      html  css  js  c++  java
  • http协议

    主要特点

      简单快速:客户向服务器请求服务时,只需传送请求方法和路径,使得HTTP服务器的程序规模小,因而通信速度很快。

      灵活:http允许传输任意类型的数据对象

      无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

      无状态:协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传.

    报文组成

      请求报文:请求行,请求头,空行,请求体

      响应报文:状态行,响应头,空号,响应体

     1 POST / HTTP1.1
     2 Host:www.wrox.com
     3 User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
     4 Content-Type:application/x-www-form-urlencoded
     5 Content-Length:40
     6 Connection: Keep-Alive
     7 
     8 name=Professional%20Ajax&publisher=Wiley
     9 
    10 第一部分:请求行,标明请求类型以及http1.1版本。
    11 第二部分:请求头部,第二行至第六行。
    12 第三部分:空行,第七行的空行。(标明接下来的是请求体)
    13 第四部分:请求数据,第八行。

    http方法

      GET         请求指定的页面信息,并返回实体主体。
      HEAD      类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
      POST      向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
      PUT        从客户端向服务器传送的数据取代指定的文档的内容。
      DELETE 请求服务器删除指定的页面。

    get和post区别

      GET在浏览器回退时是无害的,而POST会再次提交请求。
      GET产生的URL地址可以被收藏,而POST不可以。
      GET请求会被浏览器主动缓存,而POST不会,除非手动设置。
      GET请求只能进行url编码,而POST支持多种编码方式。
      GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
      GET请求在URL中传送的参数是有长度限制的,而POST没有。
      对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
      GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
      GET参数通过URL传递,POST放在Request body中。

    http状态

    1xx响应信息提示
    2xx - 成功
      200 - OK 一切正常
    3xx - 重定向
      304 - Not Modified 服务器告诉客户,原来缓冲的文档还可以继续使用
    4xx - 客户端错误
      403 - Forbidden 资源不可用
      404 - Not Found 无法找到指定位置的资源
    5xx - 服务器错误
      503 - Service Unavailable 服务不可用

    持久连接

      非持久连接:每个连接处理一个请求-响应事务。
      持久连接:每个连接可以处理多个请求-响应事务。
        持久连接情况下,服务器发出响应后让TCP连接继续打开着。同一对客户/服务器之间的后续请求和响应可以通过这个连接发送。
      HTTP/1.0 使用非持久连接。 HTTP/1.1 默认使用持久连接。

    管线化

      将多个HTTP要求(request)整批提交的技术,而在传送过程中不需先等待服务端的回应。
      管线化机制须通过持久连接完成,仅HTTP/1.1支持此技术(HTTP/1.0不支持),并且只有GET和HEAD要求可以进行管线化,而POST则有所限制
      初次创建连接时也不应启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议

  • 相关阅读:
    Ubuntu20 修改网卡名称
    单臂路由实现不同vlan间通信
    配置trunk和access
    基于端口划分vlan
    Zabbix5.0服务端部署
    搭建LAMP环境部署opensns微博网站
    搭建LAMP环境部署Ecshop电商网站
    Zabbix 监控过程详解
    Zabbix agent端 配置
    Zabbix 监控系统部署
  • 原文地址:https://www.cnblogs.com/sghy/p/9647156.html
Copyright © 2011-2022 走看看