作者:carson_ho

前言

  • 关于计算机网络,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的基础知识,如果觉得我的分享不错,欢迎大家随手点赞、转发。

http请求报文 主机IP_计算机网络基础:这是一份详细HTTP学习指南相关推荐

  1. 【Android开发】计算机网络基础知识点,如何完成网络请求过程?

    (一)计算机网络基础知识:从一次完整的网络请求过程分析 (1)域名解析 1.1)域名与ip地址 (1)ip地址:ip地址是一个32位(4字节)的二进制数(IPV4),常见格式为:192.168.1.1 ...

  2. 动态主机配置协议服务器不能提供,计算机网络基础课程—动态主机配置协议(Dhcp)...

    原标题:计算机网络基础课程-动态主机配置协议(Dhcp) DHCP(RFC 2131,2132)是对BOOTP的扩展,这种扩展体现在两个方面: 能在一个DHCP消息中为客户提供所有的网络配置信息,如I ...

  3. 【计算机网络】应用层 : 万维网 和 HTTP 协议 ( 万维网概述 | HTTP 协议特点 | HTTP 协议连接方式 | HTTP 协议报文结构 | HTTP 请求报文 | HTTP 响应报文 )

    文章目录 一.万维网概述 ★ 二.HTTP 协议 ( 超文本传输协议 ) ★ 三.HTTP 协议特点 ★ 四.HTTP 连接方式 ★ 五.HTTP 协议报文结构 六.HTTP 请求报文 ★ 七.HTT ...

  4. [计算机网络]httpserver--如何解析HTTP请求报文

    这个http server的实现源代码我放在了我的github上,有兴趣的话可以点击查看哦. 在上一篇文章中,讲述了如何编写一个最简单的server,但该程序只是接受到请求之后马上返回响应,实在不能更 ...

  5. icmp回复报文_如果目标主机阻塞了,ICMP回显请求报文,我们可以

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:如果目标主机阻塞了,ICMP回显请求报文,我们可以通过类推荐回答:这种机制就是我们通常所用的ping命令来检测目标主机是否可以pin ...

  6. http协议基础笔记(请求报文及响应报文的组成)

    概念 HTTP(hypertext transport protocol)协议:中文叫 超文本传输协议 是一种基于TCP/IP的应用层通信协议 这个协议详细规定了 浏览器 和 万维网 服务器 之间互相 ...

  7. HTTP基础:请求报文

    HTTP报文 1.超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP是一种请求/响应式的协议     ⑴即一个客户端与服务器建立连接后,客户端 ...

  8. 计算机网络基础常考面试题总结

    计算机网络基础常考面试题总结 1.OSI,TCP/IP,五层协议的体系结构,以及各层协议 答:OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层 ...

  9. 收藏 | 计算机网络基础知识总结

    来源:机器学习算法与自然语言处理 本文约9300字,建议阅读10+分钟. 一起来学习计算机网络学习的核心网络协议. 阅读目录 1. 网络层次划分 2. OSI七层网络模型 3. IP地址 4. 子网掩 ...

最新文章

  1. 使用 Contour 接管 Kubernetes 的南北流量
  2. 初学Java的那段日子
  3. leetcode 927. Three Equal Parts | 927. 三等分(Java)
  4. php 蓝奏网盘上传文件,蓝奏云_文件上传_API
  5. 如何实现动态加载删除android,关于android:融云IMKit-动态删除或添加plugin-的实现...
  6. rz/sz命令参数解释
  7. Perl重命名当前目录下的文件
  8. JavaScript里的函数加或不加括号的区别
  9. python爬虫基础教程1_Python爬虫系列(一)入门教学
  10. BZOJ2191:Splite
  11. python 大小端转换_Python bin文件大小端转换
  12. C语言游戏开发——反弹球
  13. 易语言内存不能为read错误解决方案和提高程序运行速度【转载】
  14. 计算机中含有旧的mf驱动程序,打印机驱动在应用时的小窍门
  15. 【3dsmax插件】FBX转Bip插件 Bippy.ms
  16. STM32 控制蜂鸣器播放音乐的原理和实例
  17. dub解析json为构
  18. 企业或个人域名备案怎么弄
  19. 用PS制作墙壁上的时尚立体文字图案
  20. 无限循环小数转化分数

热门文章

  1. 【电子器件笔记6】三极管(BJT)参数和选型
  2. 小新700linux网卡驱动,小新Air14网卡驱动2024.0.2.101/12.0.0.725版下载,适用于Win10-64-驱动精灵...
  3. Css3中align-content,深入理解css中的align-content属性
  4. 一文读懂电源缓启动原理
  5. 大数据之flink定时器
  6. Linux:命令 执行操作符
  7. 基于C#制作一个桌面宠物
  8. Android【Socket通讯】
  9. 微信首页登录html页面,H5页面接入微信授权登录和分享
  10. 计算机上的be无法正常启动,应用程序无法正常启动0xc0000005的三种解决方法