HTTP报文的结构

发布者:admin 发布时间:2019-10-26 12:41 浏览次数:

  HTTP通信过程包括客户端往服务器端发送请求以及服务器端给客户端返回响应两个过程。在这两个过程中就会产生请求报文和响应报文。

  HTTP报文是用于HTTP协议交互的信息,HTTP报文本身是由多行数据构成的字符串文本。客户端的HTTP报文叫做请求报文,服务器端的HTTP报文叫做响应报文。

  HTTP报文由报文首部和报文主体构成,中间由一个空行分隔。 报文首部是客户端或服务器端需处理的请求或响应的内容及属性, 可以传递额外的重要信息。报文首部包括请求行和请求头部,报文主体主要包含应被发送的数据。通常,不一定有报文主体。

  HTTP报文首部的结构:由首部字段名和字段值构成的,中间用冒号“:”分割。首部字段格式: 首部字段名:字段值。

  HTTP首部字段通常有4种类型:通用首部,请求首部,响应首部,实体首部。

  请求首部字段:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。

  响应首部字段:从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

  实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等和实体有关的信息。

  一个HTTP请求报文由请求行(request line)、请求头部(request header)、空行和请求数据4个部分构成。

  请求行数据格式由三个部分组成:请求方法、URI、HTTP协议版本,他们之间用空格分隔。

  该部分的请求方法字段给出了请求类型,URI给出请求的资源位置(/index.html)。HTTP中的请求类型包括:GET、POST、HEAD、PUT、DELETE。一般常用的为GET和POST方式。最后HTTP协议版本给出HTTP的版本号。

  (3)数据传送方式:Get传递的请求数据按照key-value的方式放在URL后面,在网址中可以直接看到,使用?分割URL和传输数据,传输的参数之间以&相连,如:login.action?name=user&password=123。所以安全性差。

  POST方法会把请求的参数放到请求头部和空格下面的请求数据字段就是请求正文(请求体)中以&分隔各个字段,请求行不包含参数,URL中不会额外附带参数。所以安全性高。

  (3)发送数据大小的限制:通常GET请求可以用于获取轻量级的数据,而POST请求的内容数据量比较庞大些。

  Get:1~2KB。get方法提交数据的大小直接影响到了URL的长度,但HTTP协议规范中其实是没有对URL限制长度的,限制URL长度的是客户端或服务器的支持的不同所影响。

  Post:没有要求。post方式HTTP协议规范中也没有限定,起限制作用的是服务器的处理程序的能力。

  (4)提交数据的安全:POST比GET方式的安全性要高。Get安全性差,Post安全性高。

  通过GET提交数据,用户名和密码将明文出现在URL上,如果登录页面有浏览器缓存,或者其他人查看浏览器的历史记录,那么

  HTTP1.0对于每个连接都只能传送一个请求和响应,请求完服务器返回响应就会关闭,HTTP1.0没有Host字段。

  而HTTP1.1在同一个连接中可以传送多个请求和响应,多个请求可以重叠和同时进行,HTTP1.1必须有Host字段。

  请求正文和请求头部通过一个空行进行隔开,一般用于存放POST请求类型的请求正文,如上的请求体为:

  HTTP响应报文由状态行(HTTP版本、状态码(数字和原因短语))、响应头部、空行和响应体4个部分构成。

  其中响应头部和响应体同样也是通过一个空行进行隔开,如下为一个简单的示例:

  或者有一些浏览器响应头部在Header中显示,响应体在Reponse中显示。

  状态行主要给出响应HTTP协议的版本号、响应返回状态码、响应描述,同样是单行显示。格式为:

  状态码告知从服务器端返回的请求的状态,一般由一个三位数组成,分别以整数1~5开头组成。各个响应的类型对应的含义:

  302 Found 资源的URI已临时定位到其他位置,客户端不会更新URI。

  303 See Other 资源的URI已更新,明确表示客户端要使用GET方法获取资源。

  304 Not Modified 当客户端附带条件请求访问资源时资源已找到但未符合条件请求。

  403 Forbiddden 不允许访问,对请求资源的访问被服务器拒绝   404 Not Found 无法找到请求的资源,请求资源不存在。

  5XX服务器错误500 Internal Server Error 服务器的内部资源出故障,服务器在执行请求时发生了错误。

  503 Service Unavailable 服务器暂时处于超负载状态或正在进行停机维护,无法处理请求,服务器正忙。

  响应头部主要是返回一些服务器的基本信息,以及一些Cookie值等。如上的响应头为:

  响应体为请求需要得到的具体数据,可以为任何类型数据,一般网页浏览返回的为html文件内容,如上面的响应体为:

  HTTP报文传过来都是一堆的0xASCII码,诸如“4”对应的是“accept”单词的十六进制ASCII码。这些十六进制的数字经过浏览器或者专用工具比如wireshark的翻译,...博文来自:shirley_zx的专栏

  HTTP有两种报文:请求报文和响应报文,具体介绍如下一、HTTP请求报文先上个图,细细分析HTTP请求报文主要包括请求行、请求头部以及请求的数据(实体)三部分请求行(HTTP请求报文的第一行)请求行由...博文来自:wzx19840423的专栏

  我对报文的理解: 报文就是在各个系统之间进行请求和响应时用来交换信息的,还需要遵守规定好的格式。另外,应用报文多是多个系统之间需要通信的时候,比如银行ESB系统到网关系统再到银联系统。在这中间报文就承...博文来自:ZJC的博客

  1.报文(message)我们将位于应用层的信息分组称为报文。报文是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分...博文来自:a3192048的博客

  前言去年下半年以来各种俗事缠身,所以有段时间没有更新博客了。过完年回来事情不多,项目需求也比较少,又可以愉快的写博客了(≧∇≦)ノ这几天在网络上搜罗了一些HTTP协议的相关知识,并对这些知识做了一番整...博文来自:ccpat的专栏

  HTTP报文学习部分一.HTTP请求报文格式1.简介:http超文本传输协议2.请求报文格式有四部分组成:请求行,请求头部,空行,和请求包体,请求行对应着chrome中的general中的字段,请求头...博文来自:abcnull的博客

  当你在浏览器输入一个网址,如,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系...博文来自:forever-and-ever的博客

  请求报文结构如下表,如下:报文首部空行(CR+LF)报文主体请求行(包含方法、URI、HTTP版本)请求首部字段(补充请求的附加内、客户端信息、响应内容相关优先级等)通用首部字段(请求、响应报文都会使...博文来自:Summer的博客

  HTTP1.0的格式request(HTTP请求消息)结构:一个请求行.部分消息头,以及实体内容,其中的一些消息内容都是可选择的.消息头和实体内容之间要用空行分开.GET/index.htmlHTTP...博文来自:博客标题

  一、报文流HTTP报文是在HTTP应用程序之间发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义。这些报文在客户端、服务器和代理之间流动。1、报文流入源端服务器http...博文来自:weixin_44339224的博客

  HTTP请求报文格式:HTTP请求报文主要由请求行、请求头部、请求正文3部分组成1,请求行由3部分组成,分别为:请求方法、URL(见备注1)以及协议版本,之间由空格分隔请求方法包括GET、HEAD、P...博文来自:怀揣梦想,努力前行

  HTTP请求报文格式:请求行,多个请求头,一个空行,实体内容。1.  请求行:请求方法,请求资源部分名称、协议版本组成。请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DE...博文来自:qiuchaoxi的博客

  http报文格式详解!HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文下面我们来说什么是请求报文:HTTP请求报文一...博文来自:weixin_44269229的博客

  欢迎关注微信公众号,想进入大型互联网公司的或提升自己能力的,搜索微信公众号:“一起写程序” ,会分享系列文章,面试题等,希望大家能一起学习。 1,http的协议结构详解? 问题1:请求报文和响应报文的...博文来自:newVenues的专栏

  HTTP报头结构:请求报文和响应报文,请求报文是请求行,响应报文是状态行。请求报文和响应报文都是由四部分组成的(1)报文头(initialline),例如GET博文来自:github_37130188的博客

  一、报文流        HTTP报文是在HTTP应用程序之间发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义。这些报文在客户端、服务器和代理之间流动。1、报文流入源...博文来自:vikeyyyy的博客

  GET请求报文如下POST请求报文如下200响应报文如下404响应报文如下HTML中的meta标签的http-equiv属性,实际上修改的是响应报文的响应头中的键值对...博文来自:Joven0的专栏

  之前写过一篇HTML报文,但是感觉写完之后还是不懂,最近终于有时间开始看《HTTP权威指南》,看完之后觉得还是比之前的理解更加深入了,提取HTTP报文出来做个记录。HTTP报文分为请求报文(r...博文来自:weixin_34167819的博客

  HTTP报文结构请求报文HTTP请求报文由请求行、请求头、空行和请求内容4个部分构成。请求行由请求方法字段、URL字段、协议版本字段三部分构成,它们之间由空格隔开。常用的请求方法有:GET、POST、...博文来自:阿喵的博客

  你是否曾幻想读一遍书就记住所有的内容?是否想学习完一项技能就马上达到巅峰水平?除非你是天才,不然这是不可能的。对于大多数的普通人来说,可以通过笨办法(死记硬背)来达到学习的目的,但效率低下。当然,也可...博文来自:程序新视界

  Http协议报文结构Http请求HTTP请求由状态行、请求头、请求正文三部分组成。状态行包括:RequestURL:博文来自:一个想写小说的程序员

  HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request...博文来自:zhengxiuchen86的博客

  HTTP之请求报文(Request)报文格式客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(requestline)、请求头部(header)、空行和请求数据(请求主体body)四个...博文来自:不怕猫的耗子A

  Java的每个基本类型都对应了一个包装类型,比如说int的包装类型为Integer,double的包装类型为Double。基本类型和包装类型的区别主要有以下4点。...博文来自:沉默王二

  转载地址:转载地址:HTTP协议通信过程汇总来源网络原创不详 当我们...博文来自:

  本人是一个纯正的小白,在学习的过程中搜集了一些关于前端开发的网站,希望对大家能够有所帮助!授人以鱼不如授人以渔!1.MDN开发者文档网址:博文来自:小白

  HTTP报文分为请求报文和响应报文,这两类报文都是由三个部分组成:(1)开始行:区分请求报文和响应报文(2)首部行:说明浏览器、服务器报文主题的一些信息(3)实体主体请求报文的开始行包括:方法(请求方...博文来自:lzj2504476514的博客

  转:提供了丰富的API接口,API的典型应用场景为业务应用(第三方平台)与平台进行数据交...博文

  很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~一、介绍开发语言:C语言开发工具:Dev-C++5.11日期:2019年9...博文来自:ZackSock的博客

  本文约8000字,正常阅读需要15~20分钟。读完本文可以获得如下收益:分辨知识和知识体系的差别理解如何用八大问发现知识的连接点;掌握致用类知识体系的构建方法;能够应用甜蜜区模型找到特定领域来构建知识...博文来自:程序视界——聚焦程序员的职业规划与成长

  报文格式首先报文的格式如下:其中空行用于区分报文首部和报文主体内容,是由一个回车符和一个换行符组成。中间使用CR+LF的空行区分(\r\n)CR代表回车LF代表换行无论是请求报文还是响应报文都需要有报...博文来自:五山口老法师

  【公众号回复“1024”,免费领取程序员赚钱实操经验】今天我章鱼猫给大家带来的这个开源项目,估计很多喜欢听音乐的朋友都会喜欢。就目前来讲,很多人对这款音乐App都抱......博文来自:非著名程序员

  TCP/IPHTTP是个应用层协议。HTTP无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。TCP提供了: •无差错的数据传输;•按序传输(数据总是会按照发送...博文来自:Jinmy的博客

  每一个程序员都有一个梦想,梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司,由于身边的环境等原因,不知道 BAT 等一线互联网公司使用哪些技术?或者该如何去学习这些技术?或者我该去哪些获取这些...博文

  目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全...博文

  在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自菜鸟教程 , 也添加了一些知识点 shell脚本? 在...博文

  欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),验证通过后,输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术...博文

  起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道...博文

  写在前边 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不...博文

  今天给大家带来点快乐,程序员才能看懂。 来源:公司实习生找 Bug 2.在调试时,将断点设...博文

  关于基础 项目打算招聘一个自动化运维,主要需求是python、Linux与shell脚本能力。但面试几天发现一些问题: 简历虚假 这个不管哪行,简历含水量大都是普遍存在的,看简历犀利的一比,一面...博文

  1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层,传...博文

  我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案...

  文章目录前言下载免费高清大图下载带水印的精选图代码与总结 前言 在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的...

  作者:阿波、纯洁的微笑漫画:宁州枪手程序员如今已经发展成社会的主流职业,以至于街头的王大妈李大爷都能说出一二来,据说他们认为的程序员是这样子的:程序员都是秃头,秃的越狠越......

  作者 小鹿 来源 公众号:小鹿动画学编程 写在前边 TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。 对于这部分掌握...

  500行代码,教你用python写个微信飞机大战10-16阅读数 2万+

  三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!10-17阅读数 1万+


上一篇:报文、报文段、分组、包、数据报、帧、数据流    下一篇:报文-报文速率-通知栏更新 - 阿里云