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

    一、什么是HTTP协议

      HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。

    二、HTTP协议的版本

      HTTP协议的版本:HTTP/1.0、HTTP/1.1

    HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。

    HTTP/1.1,发送请求,创建一次连接,获得多个web资源,保持连接。

    三、HTTP组成 

    Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请 求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

     

    3.2、HTTP——请求行

      请求行中的GET称之为请求方式,常用的有: GET、 POST
      用户如果没有设置,默认情况下浏览器向服务器发送的都是get请求,

           例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。
      不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:

        如果请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1
      GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
      如果请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。

    3.3、HTTP——请求头

      HTTP请求中的常用消息头

      accept:浏览器通过这个头告诉服务器,它所支持的数据类型
      Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
      Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
      Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
      Host:浏览器通过这个头告诉服务器,想访问哪台主机
      If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
      Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的  防盗链
      Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接

    3.4、HTTP--请求体

    当请求方式是post的时,请求体会有请求的参数,格式如下:

    username=zhangsan&password=123

    如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url地址后面

    http://localhost:8080...?username=zhangsan&password=123

    四、HTTP响应

    1、响应行:

    Http协议

    状态码:

      常用的状态码如下:

        200 :请求成功。

        302 :请求重定向。(跳转到了其他的页面)

        304 :请求资源没有改变,访问本地缓存。

        404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。

        500 :服务器内部错误。通常程序抛异常(控制台代码错误!)。

    状态信息:状态信息是根据状态码变化而变化的

    2、响应头:

    响应也都是键值对形式,服务器端将信息以键值对的形式返回给客户端。

    3、响应体:

    响应体是服务器回写给客户端的页面正文,浏览器将正文加载到内存,然后解析渲染 显示页面内容

  • 相关阅读:
    利用pip批量升级packages
    基于cx_freeze编译PyQt4程序(numpy & scipy)
    利用Python读取Matlab的Mat文件内容
    在PyQt4中使用matplotlib
    个人Python常用Package及其安装
    python变量不能以数字打头
    Python Django开始
    Django 1.9 支持中文(转)
    Ubuntu1604中mysql的登录问题
    h3c防火墙的设置过程
  • 原文地址:https://www.cnblogs.com/layuechuquwan/p/11669564.html
Copyright © 2011-2022 走看看