美文网首页NetAndroid知识技巧总结网络相关
计算机网络:这是一份全面& 详细 HTTP知识讲解

计算机网络:这是一份全面& 详细 HTTP知识讲解

作者: Carson带你学安卓 | 来源:发表于2016-05-29 18:16 被阅读9267次

    前言

    • HTTP网络通信协议在任何的开发工作中都非常重要
    • 今天,我将献上一份HTTP的说明指南,希望你们会喜欢

    目录

    示意图

    1. 储备知识

    讲解HTPP协议前,先了解一些基础的计算机网络相关知识

    1.1 计算机网络体系结构

    • 定义
      计算机网络的各层 + 其协议的集合

    • 作用
      定义该计算机网络的所能完成的功能

    • 结构介绍
      计算机网络体系结构分为3种:OSI体系结构、TCP / IP体系结构、五层体系结构

    • OSI体系结构:概念清楚 & 理念完整,但复杂 & 不实用
    • TCP / IP体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被广泛应用于局域网 和 广域网
    • 五层体系结构:融合了OSITCP / IP的体系结构,目的是为了学习 & 讲解计算机原理
    示意图
    • TCP / IP的体系结构详细介绍
      由于 TCP / IP体系结构较为广泛,故主要讲解
      示意图

    1.2 HTTP 协议通信的基础模型

    • HTTP协议传输信息的基础:TCP/IP协议模型

      示意图
    • HTTP协议 属于 最高层的应用层


    2. 简介

    下面,将简单介绍一下 HTTP

    示意图

    3. 工作方式

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

    4. HTTP报文详解

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

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

    • 下面,将详细介绍这2种报文

    4.1 请求报文

    4.1.1 报文结构

    • HTTP的请求报文由 请求行、请求头 & 请求体 组成,如下图
    示意图
    • 下面,将详细介绍每个组成部分

    4.1.2 结构详细介绍

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

    • 结构
      请求行的组成 = 请求方法 + 请求路径 + 协议版本

    注:空格不能省

    请求行的组成
    • 组成介绍
    示意图

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

    示意图

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

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

    2. 常见请求Header

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

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

    • 使用方式:共3种
    示意图

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

    4.1.3 总结

    • 关于 请求报文的总结如下
    示意图
    • 请求报文示例
    示意图

    4.2 HTTP响应报文

    4.2.1 报文结构

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

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

    4.2.2 结构详细介绍

    组成1:状态行

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

    其中,空格不能省

    状态行组成
    • 具体介绍


      示意图
    • 状态行 示例
      HTTP/1.1 202 Accepted(接受)、HTTP/1.1 404 Not Found(找不到)

    组成2:响应头

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

    2. 常见响应Header

    常见响应Header

    组成3:响应体

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

    4.2.3 响应报文 总结

    示意图

    4.3 总结

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


    示意图

    5. 额外知识

    下面将讲解一些关于HTTP的额外知识:

    • HTTP1.1HTTP1.0 的区别
    • HTTPHTTPS的区别
    • HTTP 处理长连接的方式

    5.1 HTTP1.1 与 HTTP1.0的区别

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

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

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

    5.2 HTTP 与HTTPS的区别

    示意图

    5.3 HTTP处理长连接的方式

    示意图

    6. 总结

    • 本文全面总结了HTTP的基础知识
    • 接下来我会介绍继续Android开发中的相关知识,有兴趣可以继续关注Carson_Ho的安卓开发笔记

    请点赞!因为你们的鼓励是我写作的最大动力!

    相关文章阅读
    Android开发:Handler异步通信机制全面解析(包含Looper、Message Queue)
    Android开发:最全面、最易懂的Android屏幕适配解决方案
    Android开发:5分钟解析Activity&Fragment生命周期
    Android开发:JSON简介及最全面解析方法!
    Android开发:XML简介及DOM、SAX、PULL解析对比


    欢迎关注Carson_Ho的简书!

    不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度

    相关文章

      网友评论

      • 落雁沙世界:大佬,能把三次握手和四次挥手的过程,还有断点续传和下载的原理讲了不,这个是面试经常问的;
        abcode:三次握手这个 看博主另一篇关于tcp的文章 讲的很详细
      • hatboy911:写的不错,如果把websocket放里面讲讲就更好了
      • 青蛙要fly:写的很好。。支持
        9d13dac0b326:fly哥,别搬砖啦,CEO哦 /偷笑
      • 沉睡的牛仔:文章很好,看这个看明白了!
      • e64c4c4955f9:2.键值对形式
        键与值之间用”=“连接,每个键值对间用&连接,且只能用ASCII字符,如Query String

        key1=value1&key2&value2

        应该是

        key1=value1&key2=value2 吧?
        路人丁Coco:楼主正解。
        来世记忆:我也觉得是不是作者笔误了
      • 顾明伟:文章都很棒啊,逻辑清晰,条理清楚。
      • c40e2eff5747:不错 很好

      本文标题:计算机网络:这是一份全面& 详细 HTTP知识讲解

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