HTTP请求报文

http请求报文数据分为三部分:

  1. 请求行
  2. 请求头部
  3. 请求数据

http请求报文的格式如下图所示:

下面是Get请求的例子:

GET /92316461213.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

第一部分:请求行

对应着请求行可以看出来Get请求,协议的版本为http1.1访问的资源为/92316461213.jpg

第二部分:请求头部,服务器要使用的附加信息

下面简单介绍部分请求头部信息。

  1. Mozilla/5.0由于历史上的浏览器大战,当时想获得图文并茂的网页,就必须宣称自己是 Mozilla 浏览器。此事导致如今User-Agent里通常都带有Mozilla字样,出于对历史的尊重,大家都会默认填写该部分。
  2. Windows NT 10.0; WOW64说明操作系统的信息。
  3. AppleWebKit/537.36 (KHTML, like Gecko)引擎版本。
  4. Chrome/51.0.2704.106Safari/537.36浏览器版本。

第三部分:空行

根据HTTP报文格式来看请求头部之下必须是空行。

第四部分:请求数据

下面是POST请求的例子:

POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alivename=Professional%20Ajax&publisher=Wiley

第一部分:请求行

第二部分:请求头部

第三部分:空行

第四部分:请求数据

HTTP响应报文

http响应报文数据分为三部分:

  1. 响应头部
  2. 消息报头
  3. 响应数据

http请求报文的格式如下图所示:

下面是POST响应的例子:

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8<html><head></head><body><!--body goes here--></body>
</html>

第一部分:响应头部

由HTTP版本号,状态码,状态消息三部分组成

第二部分:消息报头

第二行和第三行为消息报头。
Date:生成响应的日期和时间;
Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8

第三部分:空行

消息报头之后必须跟一个空行

第四部分:响应数据

服务器返回给客户端的文本信息,空行后面的html部分为响应正文。

请求返回状态码如下所示:

200 OK 当您的操作将在响应正文中返回数据时,出现此结果。
204 No Content 当您的操作成功,但不在响应正文中返回数据时,出现此结果。
304 Not Modified(重定向) 当测试实体自上次检索以来是否被修改时,出现此结果。
403 Forbidden 客户端错误
401 Unauthorized 客户端错误
413 Payload Too Large(客户端错误) 当请求长度过长时,出现此结果。 400 BadRequest(客户端错误) 当参数无效时,出现此结果。 404 Not Found(客户端错误) 当资源不存在时,出现此结果。
405 Method Not Allowed(客户端错误)由于方法和资源组合不正确而出现此错误。 例如,您不能对一个实体集合使用 DELETE 或 PATCH。
412 Precondition Failed 客户端错误
501 Not Implemented(服务器错误) 当未实施某个请求的操作时,出现此结果。
503 Service Unavailable(服务器错误) 当 Web API 服务不可用时,出现此结果。

HTTP(超文本传输协议)报文格式相关推荐

  1. 《计算机网络》——文件传输协议FTP、简单邮件传送协议SMTP、邮局协议POP3、网际报文存取协议IMAP、万维网和HTTP协议、超文本传输协议HTTP

    文章目录 文件传输协议FTP FTP服务器和用户端 FTP工作原理 简单邮件传送协议SMTP 邮局协议POP3 网际报文存取协议IMAP 万维网和HTTP协议 超文本传输协议HTTP HTTP协议的特 ...

  2. 网络(7)-HTTP(HyperText Transfer Protocol,超文本传输协议)

    http是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应.请求和响应消息的头以ASCII码形式给出:而消息内容则具有一个类似MIME的 ...

  3. Hyper Text Transfer Protocol(超文本传输协议)

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送 ...

  4. HTTP(超文本传输协议)

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网(WWW:World Wide Web )服务器 ...

  5. HTTP:超文本传输协议

    一.基本概念 什么是HTTP协议? 超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器,通过因特网传送万维网文档的数据传送协议. 作用: ...

  6. HTTP超文本传输协议详解

    1.引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/ ...

  7. 超文本传输协议HTTP

    在了解HTTP 协议之前需要先了解一些其他的概念,了解它们之间的关系才能更好的理解HTTP 协议. 内容偏于理论知识,理解起来可能不是很容易,所以在阅读之前希望带着以下几个问题,增加阅读的兴趣. 为什 ...

  8. 超文本传输协议http详解

    HTTP特点 HTTP(HyperText Transfer Protocol,超文本传输协议),是一个应用层协议,虽然在2015年已推出HTTP/2版本,并被主要的web浏览器和web服务器支持.但 ...

  9. 超文本传输协议版本 2 [http/2 spec]

    Github:中英对照版 超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/ ...

最新文章

  1. 项目配置laungchImage
  2. linux查看apache端口,linux系统下Apache服务启动时80端口报错
  3. 团队开发项目-NABCD模型
  4. excel中python是什么意思_python在excel中的应用是什么
  5. ZigBee,ZStack
  6. X264码率控制流程分析
  7. java 多进程多线程_Java并发编程原理与实战三:多线程与多进程的联系以及上下文切换所导致资源浪费问题...
  8. 双极结型三极管的结构、特性、参数
  9. linux内核arc4算法,linux内核中与进程相关的数据结构(基于linux-mainline-rc4)
  10. 三星要带头了!考虑明年手机不送充电器
  11. 【Elasticsearch】了解Elasticsearch写入磁盘的数据
  12. 不要奢望.NET能够跨平台
  13. 批量调取接口_调用API接口批量查手机归属地
  14. 低版本向日葵本机识别码和验证码提取
  15. 小迪外卖小程序源码+后台_外卖cps 赚钱小程序源码
  16. 使用AIL(Android Init Language)解释servicemanager.rc语句作用
  17. MacOs使用IDEA自带的maven教程
  18. 使用内核驱动上手 x710 flow directory 功能
  19. 基于卷积神经网络的乳腺肿瘤良恶性分类方法研究
  20. CortexM3,CortexM4存储器映像

热门文章

  1. c语言输出指定个数的字符,读取指定个数的字符,依照要求输出。当指定数目≥32时,出错...
  2. ApplicationContextAware的setApplicationContext方法是什么时候执行的
  3. 整理查找的鼠标悬浮移入移出事件
  4. Android双网卡或双IP
  5. 如何在win10上运行Linux ?
  6. 面向过程编程思想和面向对象编程思想
  7. 分享几个开源免费的中后台前端框架
  8. python求鸡兔同笼 鸡兔总数鸡兔腿_编程解决鸡兔同笼的问题:假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只? 提交代码和截图_学小易找答案...
  9. NLP文本分类入门学习及TextCnn实践笔记——模型训练(三)
  10. vue生命周期钩子,vue生命周期钩子,vue生命周期钩子