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

    HTTP协议

      HTTP英文全称是Hypertext Transfer Protpcol,也就是超文本传输协议。就是定义客户端于服务器端进行通讯的格式。

      HTTP使用请求-响应的方式进行传输,一个请求只能对应一个响应,并且请求只能由客户端发起的。

      如图所示:

      HTTP请求     

       客户端连接服务器之后,想服务器请求某个web资源,称之为客户端向服务器发送一个http请求,一个完整的http请求内容包括:一个请求行、若干请求头、请求体。

          

      请求行:

        例如:POST /Demo01/user.html HTTP/1.1

        格式:请求方式 资源路径 协议/版本

        请求行必须在http请求格式的第一行。

         常见的请求:get请求,post请求

          get请求:

            将请求参数追加在url后面,不安全,url长度限制get请求方式数据的大小,没有请求体,一般的HTTP请求大多都是GET。

          post请求

            请求参数在请求体处,较安全。请求数据大小没有显示,只有表单设置为method=“post”才是post请求,其他都是get请求

          常见get请求:地址栏直接访问、<a href="">、<img src="">等

      请求头:

      例如:Host: 127.0.0.1:8080

      请求头从第二行开始,到第一个空格结束。请求头和请求体之间存在一个空格。

      常见请求头:

        Referer:表示这个请求是从哪个url跳过来的,通过百度来搜索淘宝网,那么在进入淘宝网的请求报文中,Referer的值就是:www.baidu.com。如果是直接访问就不会有这个头。常用于:防盗链。

        Accept:告诉服务端,该请求所能支持的响应数据类型,专业术语称为MIME 类型(文件类型的一种描述方式)

        MIME格式:大类型/小类型[;参数]

        例如:

             text/html ,html文件

        User-Agent:浏览器通知服务器,客户端浏览器与操作系统相关信息

        if-Modified-Sincce:浏览器通知服务器,本地缓存的最后变更时间。与另一个响应头组合控制浏览器页面的缓存

        Cokkie:客户端的Cookie就是通过这个报文头属性传给服务端的!

        Host:请求的服务器主机名

        Content-Type:请求的与实体对应的MIME信息。如果是post请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码

        Connection:表示客户端与服务连接类型;Keep-Alive表示持久连接,close已关闭

      请求体

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

        username=zhangsan&password=123

      HTTP响应

            HTTP的响应报文也由三部分组成(响应行+响应头+响应体)

            

        响应行:

          ①报文协议及版本;

          例如:

            HTTP/1.1 200 OK

          ②状态码及状态描述;

          常用的状态码如下:

            200 :请求成功。

            302 :请求重定向。

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

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

            500 :服务器内部错误。通常程序抛异常。

        响应头:

          响应报文头,也是由多个属性组成;

          响应头也是用键值对k:v

          服务器通过响应头来控制浏览器的行为,不同的头浏览器操作不同

        响应体:

          服务器发送给浏览器的正文,即我们真正要的“干货” ;

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

  • 相关阅读:
    LeetCode 40. 组合总和 II(Combination Sum II)
    LeetCode 129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers)
    LeetCode 60. 第k个排列(Permutation Sequence)
    LeetCode 47. 全排列 II(Permutations II)
    LeetCode 46. 全排列(Permutations)
    LeetCode 93. 复原IP地址(Restore IP Addresses)
    LeetCode 98. 验证二叉搜索树(Validate Binary Search Tree)
    LeetCode 59. 螺旋矩阵 II(Spiral Matrix II)
    一重指针和二重指针
    指针的意义
  • 原文地址:https://www.cnblogs.com/zhai113/p/11813300.html
Copyright © 2011-2022 走看看