美文网首页
HTTP知识

HTTP知识

作者: 一昂Jone | 来源:发表于2019-07-24 14:20 被阅读0次

HTTP知识

[TOC]

1.计算机网络各层基础

计算机网络各层:

计算机网络各层作用:

2. HTTP简介

HTTP 和TCP:

<font color="#ff0000">HTTP协议属于应用层,是基于TCP传输层协议的</font>

3. 工作方式

  • HTTP协议采用 请求 / 响应 的工作方式
  • 具体工作流程如下:
img

4. HTTP报文详解

  • HTTP在 应用层 交互数据的方式 = 报文
  • HTTP的报文分为:请求报文 & 响应报文

分别用于 发送请求 & 响应请求时

4.1 请求报文

4.1.1 报文结构

  • HTTP的请求报文由 请求行、请求头 & 请求体组成,如下图

[图片上传失败...(image-23f74b-1560915036232)]

示意图

  • 下面,将详细介绍每个组成部分

4.1.2 结构详细介绍

组成1:请求行
  • 作用
    声明 请求方法 、主机域名、资源路径 & 协议版本
  • 结构
    请求行的组成 = 请求方法 + 请求路径 + 协议版本

注:空格不能省

[图片上传失败...(image-aef9f6-1560915036232)]

请求行的组成

  • 组成介绍

[图片上传失败...(image-3b3875-1560915036232)]

示意图

此处特意说明GET、PSOT方法的区别:

[图片上传失败...(image-5bb8a5-1560915036232)]

示意图

则 请求行是:GET /chn/yxsz/index.htm HTTP/1.1

组成2:请求头
  • 作用:声明 客户端、服务器 / 报文的部分信息
  • 使用方式:采用”header(字段名):value(值)“的方式
  • 常用请求头
    1. 请求和响应报文的通用Header

[图片上传失败...(image-bc24ff-1560915036232)]

请求和响应报文的通用Header

2. 常见请求Header

[图片上传失败...(image-8474b4-1560915036232)]

常见请求Header

组成3:请求体
  • 作用:存放 需发送给服务器的数据信息

可选部分,如 GET请求就无请求数据

  • 使用方式:共3种

[图片上传失败...(image-34171e-1560915036232)]

示意图

至此,关于请求报文的请求行、请求头、请求体 均讲解完毕。

4.1.3 总结

  • 关于 请求报文的总结如下

[图片上传失败...(image-6272fd-1560915036232)]

示意图

  • 请求报文示例

[图片上传失败...(image-992f4-1560915036232)]

4.2 HTTP响应报文

4.2.1 报文结构

  • HTTP的响应报文包括:状态行、响应头 & 响应体

[图片上传失败...(image-d54deb-1560915036232)]

示意图

  • 其中,响应头、响应体 与请求报文的请求头、请求体类似
  • 这2种报文最大的不同在于 状态行 & 请求行

下面,将详细介绍每个组成部分

4.2.2 结构详细介绍

组成1:状态行
  • 作用
    声明 协议版本,状态码,状态码描述
  • 组成
    状态行有协议版本、状态码 &状态信息组成

其中,空格不能省

[图片上传失败...(image-720241-1560915036232)]

状态行组成

  • 具体介绍

[图片上传失败...(image-a46c70-1560915036232)]

示意图

  • 状态行 示例
    HTTP/1.1 202 Accepted(接受)、HTTP/1.1 404 Not Found(找不到)
组成2:响应头
  • 作用:声明客户端、服务器 / 报文的部分信息
  • 使用方式:采用”header(字段名):value(值)“的方式
  • 常用请求头
    1. 请求和响应报文的通用Header

[图片上传失败...(image-e1997c-1560915036232)]

请求和响应报文的通用Header

2. 常见响应Header

[图片上传失败...(image-665284-1560915036232)]

常见响应Header

组成3:响应体
  • 作用:存放需返回给客户端的数据信息
  • 使用方式:和请求体是一致的,同样分为:任意类型的数据交换格式、键值对形式和分部分形式

[图片上传失败...(image-d7d812-1560915036232)]

示意图

4.2.3 响应报文 总结

[图片上传失败...(image-a3390a-1560915036232)]

示意图

4.3 总结

下面,简单总结两种报文结构

[图片上传失败...(image-b8ee99-1560915036232)]

5.HTTPS

5.1 HTTP的缺点

  1. 通信使用明文(不加密), 内容可能会被窃听
  2. 不验证通信方的身份, 因此有可能遭遇伪装
  3. 无法证明报文的完整性, 所有有可能已遭篡改

5.2 HTTPS

<font color="#ff0000">HTTP+加密+认证+完整性保护 = HTTPS</font>

HTTPS并非是应用层的一种新协议. 只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS (Transport Layer Security) 协议替代而已.

通常, HTTP直接和TCP通信, 当使用SSL时, 演变成了先和SSL通信, 再由SSL和TCP通信了, 简而言之, 所谓HTTPS, 其实就是身披SSL协议的这层外壳的HTTP.

在采用SSL后, HTTP就拥有了HTTPS的加密, 证书和完整性的保护这些功能.

SSL是独立于HTTP的协议, 所有不光是HTTP协议, 其他运行在应用层的SMTP(邮件协议)和Telnet等协议均可配合SSL协议使用. 可以说SSL是当今世界上应用最广泛的网络安全技术.

5.3 SSL 非对称加密

1、客户端发起HTTPS请求

这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。

2、服务端的配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。

这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3、传送证书

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

4、客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5、传送加密信息

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

6、服务段解密信息

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

7、传输加密后的信息

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

8、客户端解密信息

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

6.HTTP1.1HTTP1.0 的区别

Http1.1Http1.0多了以下优点:

  • 引入持久连接,即 在同一个TCP的连接中可传送多个HTTP请求 & 响应
  • 多个请求 & 响应可同时进行、可重叠
  • 引入更加多的请求头 & 响应头

如 与身份认证、状态管理 & Cache缓存等机制相关的、HTTP1.0host字段

7.HTTP 处理长连接的方式

相关文章

  • HTTP知识

    输入域名到显示网页的网络过程 5层网络模型介绍 低三层 物理层主要作用是定义物理设备如何传输数据数据链路层在通信的...

  • HTTP知识

    如何找到服务器 网络中部署着各种各样的服务器,比如腾讯的服务器、百度的服务器 那么问题来了? 客户端如何找到想要连...

  • HTTP知识

    HTTP知识 [TOC] 1.计算机网络各层基础 计算机网络各层: 计算机网络各层作用: 2. HTTP简介 HT...

  • Http知识

    1. HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛...

  • http知识

    http简介 超文本传输协议Http的特点 支持客户端、服务器模式 简单快速 灵活可以传输任意类型的数据 无连接收...

  • 详解HTTP(HTTP知识总结)

    本文的主要内容 HTTP 是什么 URL 详解 HTTP 之请求篇 HTTP 之响应篇 1. HTTP是什么 1....

  • 【HTTP】HTTP基本知识

    写在前面的话,这篇文章是作者参考网上的帖子的一个整理,参考资料较多,作为Http的入门文章,以供学习使用~ 原文链...

  • HTTP相关知识

    1.OSI 七层模型指什么? 七层模型,亦称OSI(Open System Interconnection)参考模...

  • HTTP概念知识

    万维网知识 1990年左右——万维网出生万维网的发明者:Tim Berner-Lee 李爵士李爵士实现了输入网址就...

  • HTTP相关知识

    最近由于看http的请求报文,在报文的请求行里面,有协议版本一说,所以就大致了解了一下http的协议版本,下面就记...

网友评论

      本文标题:HTTP知识

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