美文网首页
web问题解答

web问题解答

作者: 梅花九弄丶 | 来源:发表于2017-11-27 21:51 被阅读0次

    http与https请求协议的区别?

    http超文本传输协议(hyper text transfer protocol)是互联网上应用最为广泛的一种网络协议,所有www文件必须遵守这个标准。是一个客户端和服务器端请求和应答的标准(tcp),用于从www服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少,它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等
    https,全称Hyper Text Transfer Protocol Secure,相比http,多了一个secure,安全套接字层超文本传输协议,以安全为目标的http通道,简单讲就是http的安全版本,即http加入ssl层,https的安全基础是ssl,因此加密的详细内容需要ssl,主要作用可以分为两种:1 建立一个信息安全的通道,来保证数据传输的安全;2 确定网站的真实性

    具体区别:

    http协议传输的数据都是未加密的,也就是明文的,因此使用http协议传输隐私信息非常不安全,为了保证这些隐私数据加密传输,对http协议传输进行加密,从而诞生了https,具体区别:
    1.https更安全:https协议是有ssl+http协议构建的可进行加密传输、身份认证的网络协议,要不http协议的信息文件传输安全
    2.https需要爱申请证书:https协议需要到CA申请证书,一般免费证书很少,需要缴费,费用和.com域名差不多,每年大概需要几十元的费用,而常见的http协议则没有这一项
    3.端口不同:http使用的是大家常见的80端口,而https连接使用的是443端口
    4.状态不同:http的连接很简单,是无状态的 而https协议是ssl+http协议构建的可进行加密传输、身份认证的网络协议,相比http协议更安全

    HTTPS具体工作

    HTTPS连接时,服务器要求有公钥和签名的证书。使用HTTPS连接,服务器响应初始连接,并提供它所支持的加密方法,作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份,完成后在确保使用相同密钥的情况下传输加密信息,然后关闭连接,为了提供HTTPS连接支持,服务器必须有一个公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的以保证证书是安全的。
    HTTPS跟HTTP一样,只不过增加了SSL。

    1、HTTP包含如下动作:

    (1)浏览器打开一个TCP连接
    (2)浏览器发送HTTP请求到服务器端
    (3)服务器发送HTTP回应信息到浏览器
    (4)TCP连接关闭

    2、SSL包含如下动作:

    (1)验证服务器端;
    (2)允许客户端和服务器端选择加密算法和密码,确保双方都支持
    (3)验证客户端(可选)
    (4)使用公钥加密技术来生成共享加密数据
    (5)创建一个加密的SSL连接
    (6)基于该SSL连接传递HTTP请求

    HTTPS的工作原理

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等安全级别较高的服务都会采用HTTPS协议。

    1、客户端发起HTTPS请求

    就是用户在浏览器里输入一个https网址,然后连接到server的443端口

    2、服务端的配置

    采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。
    这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

    3、传送证书

    这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

    4、客户端解析证书

    这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。
    如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

    5、传送加密信息

    这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

    6、服务段解密信息

    服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

    7、传输加密后的信息

    这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

    8、客户端解密信息

    客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

    请描述常见的web开发技术,描述不同的开发语言的开发优势?描述python在web应用开发方面的优势?

    1. 开发效率(真正可用于开发的时间、开发人员)
    2. UI(整体设计的可能性不大、最好有现成模版)
    3. 静态页面(用户体验、速度)
    4. Ajax(吸引用户的界面、与目前国内网站的差异、体现Web2.0)
      可选框架:
      1). J2EE
      2). Java+Apache+Hibernate+MySQL

    python web框架优点1:

    1). 功能强大
    2). 开发人员熟悉,有一定技术储备
    3.) 有一些可选控件资源
    4). 数量级用户量的扩展
    1). Python环境中的IDLE的功能的详细介绍
    2). 应用Python pylint的简捷之处详解
    3). Python进程的守护进程实施方案的详细介绍
    4). Python运行效率优于C语言的功能简介
    5). Python Web中通过命令行工具启动导出源操

    优点2:

    1).快速开发
    2). 使用者多、开发控件非常丰富
    3). 有多个成功案例 43things、Odo
    4). 支持Ajax

    优点3:

    1). 功能强大
    2). Google的主力平台
    3). 已经发布Zope3

    python web框架优点4:

    1). 快速开发
    2). RoR模式
    3). 有一定的时间积累、相应的开发工具和模块
    4). 支持Ajax,i18n
    5). 开发工作量少
    6). Python语言,安装布置上手快

    优点5:

    1). 功能框架清晰
    2). 编码量小、开发效率高
    3). 有现成模版减少UI工作量
    4). 国外网站开发应用选型热点
    5). 可交流资源多
    6). 在迅速发展中

    什么是wsgi?

    WSGI(Web Server Gateway Interface):web服务网关接口,是python定义的服务器程序和应用程序之间的接口。

    什么是web接口?

    接口提供了一个公用的方法提供方案接口是用来规定子类的行为的。Api就是接口,就是通道,负责一个程序和其他软件沟通,本质是预先定义的函数。接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。接口的本身反映了系统设计人员对系统的抽象理解。接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);第二类是对一个体某一方面的抽象,即形成一个抽象面(interface),一个体有可能有多个抽象面。抽象体与抽象面是有区别的

    请简要描述get请求方式与post请求方式的区别?

    1. get请求后退刷新无害,post要重新提交数据
    2. get只能使用url编码,post可以使用其他编码
    3. get数据显示在url中,post数据在request body中
    4. get对数据长度有限制,因为数据在url中,而url的长度有限制
    5. get的语义是请求指定的资源,是安全的方法(只读),是幂等的(多次请求结果一样)
    6. post的语义是对请求的资源进行处理,不安全,不幂等

    相关文章

      网友评论

          本文标题:web问题解答

          本文链接:https://www.haomeiwen.com/subject/pqrjbxtx.html