zoukankan      html  css  js  c++  java
  • HTTP

    1、什么是http

    1. HTTP是一个客户端和服务器端请求和应答的标准(TCP)

    2. 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法

    2、http报文格式

    1)请求行
    
       求方法字段、URL字段和HTTP协议版本(例如:GET /index.html HTTP/1.1)
    
    2)请求头(key value形式)
    
       User-Agent:产生请求的浏览器类型。
       Accept:客户端可识别的内容类型列表。
       Host:主机地址
    
    3)请求数据
    
       post方法中,会把数据以key value形式发送请求
    
    4)报文举例
    
        注:cookie要在header里面而不放在body里面
    

            

    3、浏览器一个HTTP请求的过程

          1. 域名解析
    
          2. 发起TCP的3次握手,建立TCP连接后发起http请求 
    
          3. 服务器响应http请求,浏览器得到html代码
    
          4. 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)
    
          5. 浏览器对页面进行渲染呈现给用户
    

    4、http常用状态码

        1)200系列:成功
    
            200 OK - [GET]:服务器成功返回用户请求的数据
    
            201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
    
            204 NO CONTENT - [DELETE]:用户删除数据成功。
    
        2)300系列:重定向
    
        3)400系列:用户自身错误
    
            400   用户请求错误,数据库没有修改
    
            401   未授权   :表示用户没有权限(令牌、用户名、密码错误)。
    
            403   Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
    
            404   NOT FOUND  - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
    
            406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
            410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
            422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
    
        4)500系列:服务器内部错误
    
            500   服务器内部错误    INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
    
            503   服务不可用         服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
    

    5. 简述HTTP和HTTPS的区别?

    HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
    
    使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
    
    HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
    
    http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
    
    HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
    
  • 相关阅读:
    五十:数据库之Flask-Script详解
    四十九:数据库之Flask-SQLAlchemy下alembic的配置
    四十八:数据库之alembic常用命令和经典错误的解决办法
    四十七:数据库之alembic数据库迁移工具的基本使用
    四十六:数据库之Flask-SQLAlchemy的使用
    四十五:数据库之SQLAlchemy之subquery实现复杂查询
    四十四:数据库之SQLAlchemy之join实现复杂查询
    四十三:数据库之SQLAlchemy之group_by和having子句
    四十二:数据库之SQLAlchemy之数据查询懒加载技术
    四十一:数据库之SQLAlchemy之limlt、、slice、offset及切片
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12345059.html
Copyright © 2011-2022 走看看