IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 图解HTTP笔记 -> 正文阅读

[网络协议]图解HTTP笔记

一、概述

HTTP(超文本传输协议):用于客户端和服务器端之间的通信.
 为理解HTTP,我们需要先了解 TCP/IP协议族:
 不同的计算机与网络设备要相互通信,双方就必须基于相同的规则:使用什么语言?,怎样开始?,怎样结束?。而我们就把这种规则称为协议。
在这里插入图片描述

TCP/TP协议族里重要的一点就是分层。
TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。
在这里插入图片描述

与HTTP关系密切的协议:IP、TCP和DNS
在这里插入图片描述

URI:统一资源标识符,URI就是由某个协议方案表示的资源的定位标识符。采用HTTP协议时,协议方案就是http。
URL:统一资源定位符,URL正是使用Web浏览器等访问Web页面时需要输入的网页地址。
URI用字符串标识某一互联网资源,而URL表示资源的地点(互
联网上所处的位置)可见URL是URI的子集
在这里插入图片描述

二、介绍

HTTP是一种不保存状态,即无状态(stateless)协议。HTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。

HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie技术。

HTTP支持的方法:
在这里插入图片描述
持久连接:在HTTP/1.1中,所有的连接默认都是持久连接,但在HTTP/1.0未标准化。
管线化:不用等待响应亦可直接发送下一个请求。
使用COOKIE的状态管理。

三、HTTP报文

在这里插入图片描述
编码:

  1. 压缩传输的内容编码:内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接收并负责解码。
    常用的内容编码有以下几种。
    gzip (GNU zip)
    compress(UNX系统的标准压缩)
    deflate( zlib)
    identity(不进行编码)

  2. 分割发送的分块传输编码
    在HTP通信过程中,请求的编码实体资源尚未全部传输完成之
    前,浏览器无法显示请求页面。在传输大容量数据时,通过把数据分割
    成多块,能够让浏览器逐步显示页面。每一块十六进制来标记块的大小。

  3. 发送多种数据的多部分对象集合
    如同MIME机制(用于邮件),HTTP协议中也采纳了多部分对象集合,发送的一份报文
    主体内可含有多类型实体。通常是在图片或文本文件等上传时使用。
    多部分对象集合包含的对象如下。
    multipart/form-data :在Web表单文件上传时使用
    multipart/byteranges :状态码206( Partial Content,部分内容)响应报文包含了多个范围的内容时使用。

  4. 获取部分内容的范围请求
    用途:能从之前下载中断处恢复下载。
    执行范围请求时,会用到首部字段 Range来指定资源的byte范围。

  5. 内容协商机制
    内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,
    然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字
    符集、编码方式等作为判断的基准。
    在这里插入图片描述
    三种类型:1. 服务器驱动协商 2.客户端驱动协商 3.透明协商

四、HTTP状态码

在这里插入图片描述

五、WEB服务器

  1. 用单台虚拟主机实现多个域名
    在这里插入图片描述

    在相同的IP地址下,由于虚拟主机可以寄存多个不同主机名和域
    名的Web网站,因此在发送HTTP请求时,必须在Host首部内完整指
    定主机名或域名的URI

  2. 通信数据转发程序:代理、网关、隧道
    1.代理:一种有转发功能的应用程序,扮演服务器和客户端的中间人。
    代理的方法:按两种基准分类。一种是是否使用缓存,另
    种是是否会修改报文。

     缓存代理:
       代理转发响应时,缓存代理( Caching Proxy)会预先将资源的副本
       (缓存)保存在代理服务器上。
     透明代理:
       转发请求或响应时,不对报文做任何加工的代理类型被称为透明代
       理( Transparent Proxy)。反之,对报文内容进行加工的代理被称为
       非透明代理。
    

    2.网关:网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有
    时客户端可能都不会察觉,自己的通信目标是一个网关。

     网关的工作机制和代理十分相似。而网关能使通信线路上的服务器
     提供非HTTP协议服务。
     利用网关能提高通信的安全性,因为可以在客户端与网关之间的通
     信线路上加密以确保连接的安全。比如,网关可以连接数据库,使用
     SQL语句查询数据。另外,在Web购物网站上进行信用卡结算时,网
     关可以和信用卡结算系统联动。
    

    3.隧道: 是在相隔甚远的客户端和服务器两者之间进行中转,并保持双
    方通信连接的应用程序。

     	隧道可按要求建立起一条与其他服务器的通信线路,届时使用SSL
     等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的
     通信。
     	隧道本身不会去解析HTTP请求。也就是说,请求保持原样中转给
     之后的服务器。隧道会在通信双方断开连接时结束。
    
  3. 缓存:客户端缓存和缓存服务器缓存

六、HTTP首部和HTTPS

HTTP首部字段是由首部字段名和字段值构成的,中间用冒号“ :”
分隔。
若HTTP首部字段重复了会如何? 未明确规定,不同浏览器有不同逻辑

  1. 4种HTTP首部字段类型
    通用首部字段
    请求首部字段
    响应首部字段
    实体首部字段
  2. HTTP缺点
    在这里插入图片描述
  3. HTTP+SSL=HTTP+加密+认证+完整性保护=HTTPS
    HTTPS缺点:
    1. 因为与纯文本通信相比,加密通信会消耗更多的
      CPU及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到
      台计算机上时,能够处理的请求数量必定也会随之减少。
    2. 购买证书要钱:大概一年600¥

七、身份认证

在这里插入图片描述

基于表单的认证方法并不是在HTTP协议中定义的。

但是基于使用便利和安全问题,认证多为基于表单认证:
基于表单认证的标准规范尚未有定论,一般会使用 Cookie来管理
Session(会话)

八、基于HTTP的功能追加协议

  1. SPDY:
    其开发目标旨在解决HTTP的性能瓶颈,缩短Web页面的加载时间(50%)。
    SPDY没有完全改写HTTP协议,而是在TCP/IP的应用层与运输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY规定通信中使用SSL。

  2. 使用浏览器进行全双工通信的 Websocket

  3. HTTP/2.0

  4. Web服务器管理文件的 WEBDAV

九、WEB的攻击技术

  1. 跨站脚本攻击
    跨站脚本攻击( Cross-site Scripting,XSS)是指通过存在安全漏洞
    的Web网站注册用户的浏览器内运行非法的HTML标签或 Javascript
    进行的一种攻击。动态创建的HTML部分有可能隐藏着安全漏洞。就
  2. SQL注入攻击
  3. OS命令攻击
    OS命令注入攻击( OS Command Injection)是指通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在能调用 Shell P函数的地方就有存在被攻击的风险。.
  4. HTTP首部注入攻击
  5. 邮件首部注入攻击
  6. 目录遍历攻击
  7. 远程文件包含漏洞
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:59:41  更:2021-10-16 20:00:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:36:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码