首页 > 其他分享 >HTTP 消息结构

HTTP 消息结构

时间:2024-02-23 15:49:29浏览次数:23  
标签:Web HTTP 请求 响应 消息 服务器 结构 客户端

HTTP 消息结构

HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。
一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
一旦建立连接后,数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展(MIME)[RFC2045]来传送。

客户端请求消息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

客户端请求报文

服务器响应消息

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

服务器响应

实例

下面实例是一点典型的使用GET来传递数据的实例:
客户端请求:

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

服务端响应:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

输出结果:

Hello World! My payload includes a trailing CRLF.

标签:Web,HTTP,请求,响应,消息,服务器,结构,客户端
From: https://www.cnblogs.com/yxpp/p/18029678/http-message-structure-z1n1arf

相关文章

  • HTTP请求方法
    HTTP请求方法根据HTTP标准,HTTP请求可以使用多种请求方法。HTTP1.0定义了三种请求方法:GET,POST和HEAD方法。HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。序号方法描述1GET请求指定的页面信息,并返回实体主体。2HEAD类似于ge......
  • HTTP 简介
    HTTP简介HTTP简介HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网(WWW:WorldWideWeb)服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。HTTP工作原理HTTP协议工作于客户端......
  • java的基本循环结构之For循环
    1、For循环虽然所有循环结构都可以用while或者do...while表示,但Java提供了另一种语句--for循环,使一些循环结构变得更加简单。◆for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。◆for循环执行的次数是在执行前就确定的。语法格式如下:for(初始化;布尔表......
  • Python打开https链接报错:unable to get local issuer certificate
    Python打开https链接报错:unabletogetlocalissuercertificate或安装Python3.10以上版本,需要openssl1.1.1以上版本,会导致openssl下面缺少证书,记录下安装方法问题描述:当使用urllib.urlopen打开一个https链接时抛出如下异常:urllib.error.URLError:<urlopenerror[SSL:......
  • java的基本循环结构之while循环
    1、while循环◆while是最基本的循环,它的结构为:while(布尔表达式){//循环内容只要布尔表达式为true,循环就会一直执行下去。我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环少部分情况需要循环一直执行,比如服务器的请求响应监听等。循环条件一......
  • chapter5-线性数据结构
    1.向量向量(vector)是可以改变其大小的线性序列容器。像数组一样,向量使用连续的空间存储元素,这表明向量也可以像数组一般通过其下标来访问其元素。但与数组不同的是,向量的大小可以动态变化。向量在内部使用动态数组的方式来存储元素,无需关心实现细节。(平均意义下,向量插入元素的时......
  • 遇到Failed to get response from https://registry.npm.taobao.org/vue-cli-version-
    1.问题在启动vueui时,总是遇到报错,如下图:2.解决参考:vuecli创建项目报错:Failedtogetresponsefrom/vue-cli-version-marker找到你的.vuerc文件:C:\Users\trmbh\.vuerc,这里根据自己的用户名更改然后改为{"useTaobaoRegistry":false,"packageManager":"npm"}第......
  • docker启动nginx https自签名证书配置
    启动测试应用时,有时需要自己配置证书签名:1使用系统自带opensslopensslreq\>-x509\>-nodes\>-days365\>-newkeyrsa:2048\>-keyoutexample.key\>-outexample.crt各参数含义:req:处理证书签署请求。-x509:生成自签名证书。-nodes:跳过为证书设置密码......
  • 学习环境(浏览器与编辑器)配置,HTTP常识
    学习大纲一前端html5/css3写页面2.JaveScript/ES6/jQuery/Bootstrap写页面逻辑二PHP编程PHP语法,数据类型,面向对象,命令空间,数据库POD,Composer,MVC三Laravel框架微信小程序,CRM,Laravel基础,项目分析,数据表创建,前后台的完整开发流程,项目优化与项目上线学习......
  • C# Winform 为控件添加鼠标悬浮时的提示消息
    https://www.cnblogs.com/whr2071/p/16453901.html 学习自C#鼠标悬浮时,提示信息_20180509很简单也很详细,可直接查看原贴。发在这里主要是记录一下,方便我自己查找。绑定你想要在其上悬浮显示的控件的鼠标悬浮事件在其中创建ToolTip,设置属性,并绑定到该控件---以下就是链接......