HTTP简介

HTTP是我们非常熟悉的协议,叫做超本文传输协议,也就是我们浏览网页需要的协议。

HTTP的本质是通过默认端口80的TCP来传输数据。

HTTP是请求-回答机制。客户端请求数据,服务器然后响应数据。
服务器不能主动发送数据给客户端

HTTP报文介绍

HTTP报文的格式如下:

HTTP报文主要由 起始行头部BODY三部分组成

HTTP报文又细分为请求包和响应包。

请求包


1、 请求行 包括 Method(GET、POST、DELETE、PUT),URI(资源在目标主机上的绝对路径)、Version(HTTP的版本,1.1,2.0,3.0)
2、 请求头 基于Key-Value,不同属性之间用 换行符隔开

3、 body body和请求行之间用一个空行隔开,body就是post要传输的数据

响应包


1、状态行 version(HTTP版本)、Status Code (状态码200、404、500等)、Reason(状态描述)

2、响应头 也是基于Key-Value,每个属性之间用CTLF换行符隔开

3、 body body与响应头之间也用换行符隔开。

头部字段详解

HTTP中头部字段基于Key-Value,用来携带信息,用户也可以往里面自定义对应的属性。

字段主要分为三类:请求字段、响应字段、通用字段

1、请求字段
请求字段是请求头专用的字段。

Host
想要请求的主机的地址。
**1、**IP+端口
**2、**域名+端口
端口可以省略,如果省略的话,为默认的端口80

和请求行中的URI合并为真正的URL

User-Agent
HTTP的代理,也就是浏览器的类型

Accept
请求希望接收的数据类型

2、响应字段
响应字段是响应头专用的字段

Expires
响应包的过期时间

Server
服务器的名字

3、通用字段
通用字段是既可以在请求头使用又可以在响应头中使用的字段

Content-Type
Body的数据格式

Content-Length
Body的长度

HTTP报文结构详解相关推荐

  1. 搞一下 车载以太网实战 | 01 车载以太网帧结构详解

    前言 搞SOA.搞 AP & CP AUTOSAR.搞异构SoC.搞车载以太网.搞车载OS等就找搞一下汽车电子. 全系内容可在<搞一下汽车电子>后台回复 "系列" ...

  2. Linux TC 流量控制与排队规则 qdisc 树型结构详解(以HTB和RED为例)

    1. 背景 Linux 操作系统中的流量控制器 TC (Traffic Control) 用于Linux内核的流量控制,它规定建立处理数据包的队列,并定义队列中的数据包被发送的方式,从而实现对流量的控 ...

  3. Windows GPT磁盘GUID结构详解

    前一篇 Windows磁盘MBR结构详解 中我们介绍了Basic Disk中的Master Boot Record结构.GPT Disk作为Windows 2003以后引入的分区结构.使用了GUID分 ...

  4. TEXTMETRIC 结构详解

    TEXTMETRIC 结构详解 函数GetTextMetrics可以获取一个字体文本度量并将它放入一个类型为TEXTMETRIC的数据结构中,该结构如下所示: typedef struct ta TE ...

  5. 微信小程序01【目录结构详解、视图与渲染、事件、input、scroll-view】

    学习地址:https://www.bilibili.com/video/BV1sx411z77P 笔记01:https://blog.csdn.net/weixin_44949135/article/ ...

  6. angular 标准目录结构_Angular-cli新建项目目录结构详解

    Angular-cli新建项目目录结构详解 在上一篇博客中我们已经通过Angular CLI命令行工具创建出来一个全新的Angular项目,要想写项目,首先我们要先搞清楚项目的目录结构是怎样的,每个文 ...

  7. [java] 虚拟机(JVM)底层结构详解[转]

    [java] 虚拟机(JVM)底层结构详解[转] 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领 ...

  8. mysql数据库存储引擎和索引的描述_Mysql InnoDB引擎的索引与存储结构详解

    前言 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的. 而MySql数据库提供了多种存储引擎.用户可以根据不同的需求为数据表选择不同的存储引擎,用户也 ...

  9. JMETER目录结构详解

                                                                 JMETER目录结构详解 JMETER安装完成之后会有很多目录文件,我们对JM ...

  10. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

最新文章

  1. mysql 5.7.13安装_安装MySQL 5.7.13
  2. jibx_Jibx Jersey2集成
  3. matlab 大括号
  4. 终端I/O之行控制函数
  5. 矩阵 计算机应用,《计算机视觉算法:基于OpenCV的计算机应用开发》 —3.3 元素级矩阵操作...
  6. photoshop常用快捷键大全
  7. 【已解决】报异常:java.lang.ArithmeticException: / by zero
  8. 【LoadRunner】解决LR11无法录制Chrome浏览器脚本问题
  9. 使用Scylla进行OSINT信息收集
  10. 了解计算机PS,PS教程:你应该了解的PS基础绘图工具
  11. codeblock添加tools实现git log查看
  12. ISIS协议原理与配置
  13. win7网络适配器_win7网络重置
  14. linux telnet 传文件命令,telnet 传输文件
  15. ads1278_24位高性能模数转换器ADS1274/ADS1278及其应用
  16. AD18无法仿真问题的解决
  17. r语言赋值为na_R语言数据框中,用0替代NA缺失值
  18. git pull origin master与git pull --rebase origin master的区别
  19. 2007高校bbs上20个睿智冷笑话
  20. Mac OSX 快捷键命令行

热门文章

  1. ArchLinux安装笔记「双系统U盘安装」(2018-11-19)
  2. vue 头像修改-裁剪图片 vue-cropper
  3. mac os 录屏快捷键_录制视频软件哪个好用?分享专业的录屏神器
  4. 常用网线类别介绍(超五类、六类)
  5. wps下一步快捷键_wps后退前进快捷键是什么?
  6. 爱词霸翻译接口 破解
  7. Kindle基础使用指南
  8. 安卓电子书格式_不用电脑,6招教你把手机上的电子书传输到Kindle上
  9. 学习mescroll的下拉刷新、上拉加载
  10. 【Tcl学习笔记】第2章 Tcl语言的语法