计算机网络基础:这是一份详细HTTP学习指南
时间:2022-07-25
本文章向大家介绍计算机网络基础:这是一份详细HTTP学习指南,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
- 关于计算机网络,
HTTP
网络通信协议在任何的开发工作中都非常重要 - 今天,我将献上一份
HTTP
的学习指南,希望你们会喜欢
目录
1. 储备知识
讲解HTPP
协议前,先了解一些基础的计算机网络相关知识
1.1 计算机网络体系结构
- 定义 计算机网络的各层 + 其协议的集合
- 作用 定义该计算机网络的所能完成的功能
- 结构介绍
计算机网络体系结构分为3种:
OSI
体系结构、TCP
/IP
体系结构、五层体系结构-
OSI
体系结构:概念清楚 & 理念完整,但复杂 & 不实用 -
TCP
/IP
体系结构:含了一系列构成互联网基础的网络协议,是Internet
的核心协议 & 被广泛应用于局域网 和 广域网 - 五层体系结构:融合了
OSI
与TCP
/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
方法、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
2. 常见请求Header
- 举例: (URL地址:http://www.tsinghua.edu.cn/chn/yxsz/index.htm) Host:www.tsinghua.edu.cn (表示主机域名) User - Agent:Mozilla/5.0 (表示用户代理是使用Netscape浏览器)
组成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
2. 常见响应Header
组成3:响应体
- 作用:存放需返回给客户端的数据信息
- 使用方式:和请求体是一致的,同样分为:任意类型的数据交换格式、键值对形式和分部分形式
4.2.3 响应报文 总结
4.3 总结
下面,简单总结两种报文结构
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的区别
5.3 HTTP处理长连接的方式
6. 总结
本文全面总结了HTTP的基础知识。
- MySQL数据库 Event 定时执行任务.
- Tomcat 日志分割.
- crontab导致的频繁发送邮件的问题(r5笔记第20天)
- 再学习之Spring(依赖注入).
- 使用序列的问题ORA-02287(r5笔记第19天)
- Java多线程详解2
- Java多线程详解3
- SpringMVC处理multipart请求.
- 一条简单的sql语句运行15天的原因分析(r5笔记第17天)
- 巧用flashback database实现灵活的数据回滚(r5笔记第16天)
- Spring Cache For Redis.
- css重写checkbox样式
- 通过shell脚本同时监控多个数据库负载(r5笔记第14天)
- Java 定时器 Timer 的使用.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法