学习指南_这可能是全网最详细的HTTP学习指南了
前言
- 关于计算机网络,HTTP网络通信协议在任何的开发工作中都非常重要
- 今天,我将献上一份HTTP的学习指南,希望你们会喜欢
目录
![](/assets/blank.gif)
1. 储备知识
讲解HTPP协议前,先了解一些基础的计算机网络相关知识
1.1 计算机网络体系结构
- 定义 计算机网络的各层 + 其协议的集合
- 作用 定义该计算机网络的所能完成的功能
- 结构介绍 计算机网络体系结构分为3种:OSI体系结构、TCP / IP体系结构、五层体系结构
- OSI体系结构:概念清楚 & 理念完整,但复杂 & 不实用
- TCP / IP体系结构:含了一系列构成互联网基础的网络协议,是Internet的核心协议 & 被广泛应用于局域网 和 广域网
- 五层体系结构:融合了OSI 与 TCP / IP的体系结构,目的是为了学习 & 讲解计算机原理
![](/assets/blank.gif)
- TCP / IP的体系结构详细介绍 由于 TCP / IP体系结构较为广泛,故主要讲解
1.2 HTTP 协议通信的基础模型
- HTTP协议传输信息的基础:TCP/IP协议模型
- HTTP协议 属于 最高层的应用层
2. 简介
下面,将简单介绍一下 HTTP
![](/assets/blank.gif)
3. 工作方式
- HTTP协议采用 请求 / 响应 的工作方式
- 具体工作流程如下:
![](/assets/blank.gif)
4. HTTP报文详解
- HTTP在 应用层 交互数据的方式 = 报文
- HTTP的报文分为:请求报文 & 响应报文 分别用于 发送请求 & 响应请求时
- 下面,将详细介绍这2种报文
4.1 请求报文
4.1.1 报文结构
- HTTP的请求报文由 请求行、请求头 & 请求体 组成,如下图
![](/assets/blank.gif)
- 下面,将详细介绍每个组成部分
4.1.2 结构详细介绍
组成1:请求行
- 作用 声明 请求方法 、主机域名、资源路径 & 协议版本
- 结构 请求行的组成 = 请求方法 + 请求路径 + 协议版本注:空格不能省
![](/assets/blank.gif)
- 组成介绍
![](/assets/blank.gif)
此处特意说明GET、PSOT方法的区别:
![](/assets/blank.gif)
- 示例 设:请求报文采用GET方法、 URL地址 = http://www.tsinghua.edu.cn/chn/yxsz/index.htm;、HTTP1.1版本
则 请求行是:GET /chn/yxsz/index.htm HTTP/1.1
组成2:请求头
- 作用:声明 客户端、服务器 / 报文的部分信息
- 使用方式:采用”header(字段名):value(值)“的方式
- 常用请求头 1. 请求和响应报文的通用Header
![](/assets/blank.gif)
2. 常见请求Header
![](/assets/blank.gif)
- 举例: (URL地址:http://www.tsinghua.edu.cn/chn/yxsz/index.htm) Host:www.tsinghua.edu.cn (表示主机域名) User - Agent:Mozilla/5.0 (表示用户代理是使用Netscape浏览器)
组成3:请求体
- 作用:存放 需发送给服务器的数据信息可选部分,如 GET请求就无请求数据
- 使用方式:共3种
![](/assets/blank.gif)
至此,关于请求报文的请求行、请求头、请求体 均讲解完毕。
4.1.3 总结
- 关于 请求报文的总结如下
![](/assets/blank.gif)
- 请求报文示例
![](/assets/blank.gif)
4.2 HTTP响应报文
4.2.1 报文结构
- HTTP的响应报文包括:状态行、响应头 & 响应体
![](/assets/blank.gif)
- 其中,响应头、响应体 与请求报文的请求头、请求体类似
- 这2种报文最大的不同在于 状态行 & 请求行
下面,将详细介绍每个组成部分
4.2.2 结构详细介绍
组成1:状态行
- 作用 声明 协议版本,状态码,状态码描述
- 组成 状态行有协议版本、状态码 &状态信息组成 其中,空格不能省
![](/assets/blank.gif)
- 具体介绍
- 状态行 示例 HTTP/1.1 202 Accepted(接受)、HTTP/1.1 404 Not Found(找不到)
组成2:响应头
- 作用:声明客户端、服务器 / 报文的部分信息
- 使用方式:采用”header(字段名):value(值)“的方式
- 常用请求头 1. 请求和响应报文的通用Header
![](/assets/blank.gif)
2. 常见响应Header
![](/assets/blank.gif)
组成3:响应体
- 作用:存放需返回给客户端的数据信息
- 使用方式:和请求体是一致的,同样分为:任意类型的数据交换格式、键值对形式和分部分形式
![](/assets/blank.gif)
4.2.3 响应报文 总结
![](/assets/blank.gif)
4.3 总结
下面,简单总结两种报文结构
![](/assets/blank.gif)
5. 额外知识
下面将讲解一些关于HTTP的额外知识:
- HTTP1.1 与 HTTP1.0 的区别
- HTTP 与 HTTPS的区别
- HTTP 处理长连接的方式
5.1 HTTP1.1 与 HTTP1.0的区别
Http1.1 比 Http1.0 多了以下优点:
- 引入持久连接,即 在同一个TCP的连接中可传送多个HTTP请求 & 响应
- 多个请求 & 响应可同时进行、可重叠
- 引入更加多的请求头 & 响应头
如 与身份认证、状态管理 & Cache缓存等机制相关的、HTTP1.0无host字段
5.2 HTTP 与HTTPS的区别
![](/assets/blank.gif)
5.3 HTTP处理长连接的方式
![](/assets/blank.gif)
看完觉得不错可以关注一下小编,后续还会持续更新干货文章!!
学习指南_这可能是全网最详细的HTTP学习指南了相关推荐
- 全网最详细的深度学习pytorch-gpu环境配置
学习深度学习第一步就是环境的配置,相信很多小伙伴已经被什么anaconda,tensorflow,Pytorch,cuda这些东西搞得晕头转向,今天带大家详细配置深度学习的环境,这一篇准要教书Pyto ...
- 华尔街英语学习软件_华尔街英语核心课程功能升级 让学员学习之旅更高效
华尔街英语自2000年进驻中国至今,一直以科学的多元法®为众多成人英语学习者提供帮助,并通过持续的产品升级不断提升用户体验.2016年华尔街英语斥巨资研发并推出了情景喜剧式的多媒体核心课程,而近日,华 ...
- 深度学习试题_初学者入门宝典-机器学习入门资料汇总及学习建议(2018版)
机器学习初学者公众号自从2018年10月开设以来,发表了不少机器学习入门的宝贵资料,受到广大机器学习爱好者的好评,本文对2018年本站发过的文章进行分类和汇总,以便初学者更好地学习. 机器学习入门,初 ...
- 2022年各大企业java面试题解析,堪称全网最详细的java面试指南
前言 最近感慨面试难的人越来越多了,一方面是市场环境,更重要的一方面是企业对Java的人才要求越来越高了. 基本上这样感慨的分为两类人,第一,虽然挂着3.5年经验,但肚子里货少,也没啥拿得出手的项目 ...
- javapython学习教程_清华学霸推出适合所有小白的python+Java学习路线和教程,超赞...
临近开学季,很多小伙伴选择了IT专业,但是在众多编程 面前,很多同学都比较迷茫,无从下手,接下俩小编想说两句!(希望大家可以把本文认真看完,对所有人帮助都会大) IT行业飞速发展,除了水涨船高的薪资水 ...
- 个人信息去标识化指南_重磅解读 | APP收集使用个人信息自评估指南2.0版正式出炉...
2020年3月19日全国信息安全标准化技术委员会秘书处发布了<网络安全标准实践指南--移动互联网应用程序(APP)收集使用个人信息自评估指南(征求意见稿)>(简称征求意见稿).2020年7 ...
- 毕业设计 : 基于深度学习的口罩佩戴检测【全网最详细】 - opencv 卷积神经网络 机器视觉 深度学习
文章目录
- 学习笔记_使用二进制的方式修改图片
学习笔记_使用二进制的方式修改图片 1.学习目标 2.学习工具 3.开始操作 3.1 了解图片是怎样用二进制表示的 3.2 开始操作 4.参考文档 1.学习目标 掌握使用二进制的方式修改图片 了解BM ...
- springboot 搭建分布式_爱了!阿里巴巴内部出品“SpringBoot+微服务指南”,理论与实战...
爱了爱了,Alibaba出品"Springboot+微服务架构指南",理论与实战结合,双管齐下! 有幸从一位朋友那里得到Alibaba内部出品强推的"SpringBoot ...
最新文章
- Dropout也能自动化?
- 用于语义分割的特征共享协作网络
- Android中链接到百度进行搜索
- 阿里巴巴计算平台资深技术专家“一浪”对大数据领域近几年的技术趋势和变化的看法【强烈推荐数据岗细细品!】
- spring boot mybatis 整合_MyBatis学习:MyBatis和Spring整合
- E - Another Postman Problem FZU - 2038
- OSI七层模型详解-开放系统互联参考模型详解
- linux 下安装fbprophet
- springboot的@EnableAutoConfiguration起作用的原理
- php如何优雅地把数组传递给前端js脚本?
- CentOS系统yum源使用报错:Error: Cannot retrieve repository metadata
- C# WebService 上传图片
- 【苹果发布资讯】macOS Big Sur 11.4 正式版 – 修复漏洞和增加GPU支持
- linux数组操作 增删改查,JS实现数组的增删改查操作示例
- Kotlin实战【二】Kotlin基本要素
- 伺服电机PID控制及增益调节
- 手把手教你深度学习ai变证件照尺寸+改背景色
- OpenCV的calcHist
- hadoop-common2.7源码分析之ProtobufRpcEngine(RPC实现)
- Microsoft PlayReady DRM及其工作原理
热门文章
- 一张小柴胡汤打天下- 四川名医马有度
- 关于Ip地址分配规则(IPV4)
- java 为何 无效_java – 为什么compareTo无效导致Collections.sor...
- zookeeper注册中心 kerberos_ZooKeeper 并不适合做注册中心
- 如何搭建个人博客或企业官网
- python实践项目(一)
- 21天JenkinsDay11 对某个job单独设置权限
- fiddler重定向
- python21天打卡Day8-string,int互转
- 程序人生:软件测试 非技术性面试题【建议每个测试人观看】