• HTTP——学习笔记(3)


    HTTP报文:用于HTTP协议交互的信息,客户端的HTTP报文叫做 请求报文,响应端的叫做 响应报文

    本质:是由多行(用CR+LF作换行符)数据构成的字符串文本

      注:CR:回车,打印针回到行首   LF:换行,打印针移至下一行

    构成:报文首部、报文主体

      报文首部:服务器端或客户端需处理的请求或响应的内容及属性

      报文主体:应被发送的数据

    请求报文(上)  响应报文(下)

    请求行:请求的方法、请求URI、HTTP版本

    状态行:响应结果状态码、原因短语、HTTP版本

    首部字段:表示请求和响应的各种条件和属性的各类首部,一般有四种(见图)

    其他:包含HTTP的RFC里未定义的首部(Cookie等)

    HTTP中的编码

    HTTP中可以直接传输数据,也可以编码后进行传输,编码的方法可以有效地处理大量的访问请求,但是编码过程需要计算机来完成,因此会消耗更多的CPU等资源

      报文:HTTP通信中的基本单位,由8位组字节流组成,通过HTTP通信传输

      实体:作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成

      报文的主体用于传输请求或响应的实体主体,通常,报文主体等于实体主体,只有当传输中进行编码操作时,实体主体的内容发生变化,才导致它和报文主体产生差异

    HTTP中的内容编码可以保持实体信息原样进行压缩,内容编码后的实体由客户端接收并负责解码

      常用的内容编码:gzip   compress  deflate  identity(不进行编码)

      传输编码机制:在通信时按某种编码方式传输,但只定义 作用于分块传输编码中

      分块传输编码:传输大容量数据时,通过把数据分割成多块,能够让浏览器逐步显示页面

      邮件中的MIME机制:多用途因特网邮件扩展,支持发送多种类型的文件,如邮件,文本,图片,视频等,因为使用一种称为多部分对象集合的方法

      多部分对象集合:HTTP中也采用了多部分集合,发送的一份报文主体内可含有多类型实体,其中包含的对象如下:

      multipart/form-data:在web表单文件上传时使用

      multipart/byteranges:状态码206(部分内容),响应报文包含了多个范围的内容时使用

    HTTP获取部分内容请求 

    在请求头部加上Range划定请求范围

      例如:Range:bytes=5001-10000     5001-10000字节

         Range:bytes=5001-               5001至后面全部的字节

         Range:bytes=-3000,5000-7000      一开始到3000字节和5000到7000字节

    返回状态码的206响应报文,若服务器无法响应范围请求,则会返回状态码200 OK和完整的实体内容

    HTTP内容协商

    同一个web网站有可能会有多份内容相同的页面,比如英语版和中文版,当浏览器的默认语言为英语或中文,访问相同的URI的web页面时会显示对应的英语版或中文版页面,这样的机制称为 内容协商

    判断基准:响应资源的语言、字符集、编码方式等

    首部字段:Accept

           Accept-Charset

         Accept-Encoding

         Accept-Language

         Content-Language

    内容协商的技术:

        服务器驱动协商:由服务器端进行内容筛选

        客户端驱动协商:由客户端进行内容筛选,用户从可选列表中手动选择,也可利用Javascript进行选择

        透明协商:由服务器端和客户端各自进行内容协商

  • 相关阅读:
    phaser3入门教程-从零开始开发一个打砖块游戏
    Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
    从零开始手把手教你使用javascript+canvas开发一个塔防游戏01地图创建
    Python实现超级玛丽游戏系列教程02玛丽走跑
    Python实现超级玛丽游戏系列教程01玛丽登场
    通过游戏学javascript系列第一节Canvas游戏开发基础
    mvc模式jsp+servel+dbutils oracle基本增删改查demo
    mvc模式jsp+servel+jdbc oracle基本增删改查demo
    N个任务掌握java系列之统计一篇文章中单词出现的次数
    mysq数据库管理工具navicat基本使用方法
  • 原文地址:https://www.cnblogs.com/ljuyi/p/6041175.html
Copyright © 2020-2023  润新知