• http协议


    http请求基本原理:

      客户端向服务端发起请求时,会生成一段请求报文,请求报文由请求方法,请求的URL,协议版本、请求头和内容实体5部分组成。

            服务器接收到请求后会响应请求端,返回响应报文,响应报文组成为5部分:协议版本、状态码、解释状态码 的解释语句、响应头、以及响应实体。

    http请求缺点及cookie的改进作用:

       http请求不做持久化状态管理。也就是说,请求发出后,响应结束整个过程就结束了,再次请求时,经过的流程与上一次一样,服务器不会记得上次是什么时候请求过或者是谁请求过,此时,如果我们想要记得之前我们的请过历史,进行状态管理,就可以使用cookie来协助服务器进行状态管理。如果没有cookie,由于http不保存请求状态,那么,每一次打开新网页都需要用户去登录,cookie可以通过响应报文中的set-cookie字段来通知客户端自动保存cookie,下次请求时会自动发送cookie,服务器会对比数据得到状态结果,下次请求时,请求端会带上cookie让服务器验证,服务器验证成功后,知道是验证过的请求方,避免了服务器再次生成cookie和对响应报文加入cookie的环节。

    GET请求与POST请求的异同点:

            主要差别有五个,分别为:

      安全性:GET请求都包含在URL中,而且会被浏览器保存历史浏览记录,POST请求不会,但是在抓包的时候同样可以被抓到;

      数据长度:GET请求参数会包含在URL中,但是URL有长度限制,URL长度限制多少字符是有各个浏览器控制的,长度的限制会影响GET传参请求;

      缓存:GET请求能缓存数据,而POST请求不能缓存;

      数据量:POST请求可以通过请求的内容实体传输更多的信息,而GET请求数据量有限;

      数据、编码类型:POST请求不限制数据类型,支持更多的编码类型。

    请求状态码:

      共有5类状态码类型。

      1xx  表示请求正在处理中;

      2xx  请求正常处理且处理成功

          200  从客户端发送的请求被正确处理

                    204   请求成功,但请求的内容不含响应实体部分

            206   进行范围请求

      3xx  请求重定向

          301 永久性重定向,表示资源已经被分配了新的URL

          302  临时重定向,表示资源被临时性的分配到新的URL

               303  资源存在着另外一个URL,应该使用新的URL定向获取资源

              文档规定,浏览器对303状态码的处理跟原来http 1.0中处理302的方式一样,对307的处理则跟原来在http 1.0中对302的描述一样。

              总结:303和307的状态码出现是由于POST请求的非幂等属性造成的。可以说,303和307是302的详细划分

          304  服务端通过cookie判断出客户端已发送过相同的请求,当前资源与上次请求时的资源相同

          

      4xx  客户端错误

          400  请求报文存在着语法错误

          401  请求需要携带http验证信息,当前请求未通过验证,多为未登录

          403  请求被服务器拒绝

          404  在服务器上没有找到请求的资源

      5xx  服务器错误

          500  服务器在执行请求时发生了错误

          503  服务器超荷载或处于停机维护状态,无法处理请求

    http请求报文和响应报文通用头部:

      cache-control: 缓存管理

          no-cache  客户端不缓存过期资源

          no-store   不进行缓存

          max-age   如果资源缓存时间比指定时间小,客户端就接受缓存,且服务器不对资源有效性进行再次确认

      connection:  控制连接

          close  服务器明确断开连接

          keep-alive  保持持久连接

      upgrade  :

          建立一个完全不同的通信协议

    HTTPS:

      https是HTTP协议建立在SSL/TLS上的安全协议,相比于HTTP,由于HTTPS多了SSL/TLS的握手和加密解密过程,性能上比HTTP差,但是目前已经可以通过特有硬件加速处理了。

  • 相关阅读:
    tuple元组
    list列表
    OS模块
    time模块/datetime模块/calendar模块
    Codeforces Round #196 (Div. 2)
    【HDU 2853】 KM算法
    【HDU1914 The Stable Marriage Problem】稳定婚姻问题
    【HDU4585 Shaolin】map的经典运用
    【HDU4578 Transformation】线段树
    【HDU4632 Palindrome subsequence】区间dp
  • 原文地址:https://www.cnblogs.com/yezibucunzai/p/10647983.html
Copyright © 2020-2023  润新知