zoukankan      html  css  js  c++  java
  • HTTP

    为什么?

    我们绝大多数的Web应用都是基于HTTP来进行开发的。我们对Web的操作都是通过HTTP协议来进行传输数据的。

    简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式

    HTTP的诞生主要是为了能够让文档之间相互关联,形成超文本可以互相传阅

    可以说,Http就是Web通信的基础,这是我们必学的。

    HTTP协议

    http报文就是客户端(如浏览器)和web服务器通信时发送和响应的的数据。

    http请求由三部分组成分别是请求行、消息报头、请求正文

    http 响应也是由三个部分组成,分别是:状态行、消息报头、响应正文

    与缓存相关的信息,都包含在消息报头(header)中。

    计算机网络分层分为5层,http则是最上面的应用层的内容

    HTTP是不保存状态的协议

    HTTP是无状态的,也就是说,它是不对通信状态进行保存的。它并不知道之前通信的对方是谁。这样设计的目的就是为了让HTTP简单化,能够快速处理大量的事务!

    但是,我们经常是需要知道访问的人是谁,于是就有了Cookie技术了。

    • 要是服务器端想要记住客户端是谁,那么就颁发一个cookie给客户端
    • 客户端把Cookie保存在硬盘中,当下次访问服务器的时候,浏览器会自动把客户端的cookie带过去。
    • 就这样,服务器就能够知道这家伙是谁了。

    HTTP首部简述

    HTTP请求报文

    HTTP请求报文:在请求中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分组成。

    1. 请求行【描述客户端的请求方式请求的资源名称,以及使用的HTTP协议版本号
    2. 首部字段【描述客户端请求哪台主机,以及客户端的一些环境信息等】
    3. 一个空行

    HTTP响应报文

    HTTP响应报文:在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分组成。

    1. 一个状态行【用于描述服务器对请求的处理结果。
    2. 首部字段【用于描述服务器的基本信息,以及数据的描述服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据
    3. 一个空行
    4. 实体内容【服务器向客户端回送的数据

    状态行:

    • 格式: HTTP版本号 状态码 原因叙述
    • 状态行:HTTP/1.1 200 OK
    • 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类

    HTTPS简述

    HTTP在安全上是不足的

    • 通信使用明文【没有加密过内容的】
    • 不验证通信方身份,无论是客户端和服务器,都是随意通信的
    • 无法证明报文的完整性【别人监听后,可以篡改】

    我们一般在上网时,使用抓包工具就很容易获取到HTTP请求的信息了,这是TCP/IP在网络通信中无法避免的。

    假设我们对HTTP报文进行加密了, 那也仅仅是是内容的加密。别人获取到了HTTP内容了,即使无法破解HTTP内容,还是能够篡改的。

    我们最好就是使用SSL建立安全的通信线路,就可以在这条线路上进行HTTP通信了。

    其实HTTPS就是披着SSL的HTTP...

    HTTPS使用的是共享密钥和公开私有密钥混合来进行加密的。由于公开私有密钥需要太多的资源,不可能一直以公开私有密钥进行通信。因此,HTTP在建立通信线路的时候使用公开私有密钥,当建立完连接后,随后就使用共享密钥进行加密和解密了

    对于认证方面,HTTPS是基于第三方的认证机构来获取认受认可的证书、因此,可以从中认证该服务器是否是合法的。

    而客户端方面则需要自己购买认证证书、这实施起来难度是很大的【认证证书需要钱】。

    所以,一般的网站都是使用表单认证就算了,这是用得最广泛的客户端认证了。

  • 相关阅读:
    Curl Get请求&漏参数
    【Java基础】日期操作(返回当前日期&日期比较)
    【Java基础】生产者消费者模式
    [Groovy] 在Groovy中优雅的实现do while
    【转载】时间复杂度的度量
    [转载]Spring Cloud初探
    [Maven] 使用Maven管理多模块项目
    JS基础三
    JS基础部分(二)
    笔记不详细记录了,学完css之后做出下面分布的导航页
  • 原文地址:https://www.cnblogs.com/sunxiaoyan/p/8424580.html
Copyright © 2011-2022 走看看