HTTP请求和响应1:概述

原创 2014年12月15日 10:53:21

HTTP的报文分为请求报文和响应报文,打开一个web页面后,浏览器将发起一个HTTP请求报文,HTTP服务器收到请求后将回送一个响应报文。

报文的基本结构

HTTP的请求和响应报文都由三个部分组成:对报文进行描述的起始行(start line)、包含属性的首部(header)块、以及可选的包含数据的主体(body)部分。

请求报文和响应报文在语法上有些差别,下面是请求报文的格式:

<method> <request-URL> <version>
<headers>

<entity-body>

下面是响应报文的格式:

<version> <status> <reason-phrase>
<headers>

<entity-body>

1)方法(method)
客户端希望服务器对资源执行的动作。

2)请求URL(request-URL)
命名了所请求资源,或者URL路径组件的完整URL。

3)版本(ersion)
报文所使用的HTTP版本,格式为:
 HTTP/<major>.<minor>
目前使用的是1.1版本。

4)状态码(status)
描述了请求过程中所发生的情况。

5)原因短语(reason-phrase)
状态码的可读版本,只对人类有意义。

6)首部(header)
HTTP/1.1要求有效的请求或响应报文中必须包含特定的首部,每个首部都包含一个名字,后面跟着一个冒号(:),然后是一个可选的空格,然后是一个值,最后是一个换行(CRLF)。首部由一个空行结束。

7)实体(entity-body)
包含由任意数据组成的数据框,报文可以不包含实体部分。

下面看一个具体的例子,请求报文:

GET /test/hi-there.txt HTTP/1.1
Accept: text/*
Host: www.joes-hardware.com

响应报文:

HTTP/1.1 200 OK
Content-type: text/plain
Content-length: 19

Hi! I'm a message!

方法

常用的HTTP方法包括:
 GET:从服务器获取一份文档
 HEAD:只从服务器获取文档的首部
 POST:向服务器发送需要处理的数据
 PUT:将请求的主体部分存储在服务器上
 TRACE:对可能经过代理服务器传送到服务器上去的报文进行跟踪
 OPTIONS:决定可以在服务器上执行哪些方法
 DELETE:从服务器上删除一份文档
注意并不是每个服务器都实现了所有的方法。

状态码

状态码用于告诉客户端,发生了什么事情,状态码的分类如下:
 100~199:信息提示
 200~299:成功
 300~399:重定向
 400~499:客户端错误
 500~599:服务器错误
下面列举了一些最常见的状态码:

 200 OK:成功。请求的所有数据都在响应主体中
 401 Unauthorized:需要输入用户名和密码
 404 Not Found:服务器无法找到所请求URL对应的资源

首部

首部是一些名/值对的列表,向请求和响应报文中添加一些附加信息。
HTTP规范定义了几种首部字段,应用程序也可以随意发明自己所用的首部。HTTP首部可以分为以下几类:
 1)通用首部;
 --既可以出现在请求报文中,也可以出现在响应报文中
 2)请求首部;
 3)响应首部;
 4)实体首部;
 --描述主体的长度和内容,或者资源自身
 5)扩展首部。
 --规范中没有定义的新首部
常用的首部如下:
 Date:Tue,3Oct 1997 02:16:03 GMT ------服务器产生响应的日期
 Content-length:15040 ------实体的主体部分包含了15040字节的数据
 Content-type:image/gif ------实体的主体部分是一个GIF图片
 Accept:image/gif,image/jpeg,text/html ------客户端可以接收GIF图片和JPEG图片以及HTML
长的首部行可以分为多行,提高可读性,多出来的每行前面要有一个空格或制表符(tab),如:
 Server: Test Server
  Version 10 ------以一个空格或者制表符开始

版权声明:本文为博主原创文章,未经博主允许不得转载。

HTTP协议-HTTP特点、请求和响应

更多详细内容请看W3C/HTTP1.1官方文档,英文原文地址HTTP协议主要特点 支持客户/服务器模型(C/S) 灵活 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到...
  • joson793847469
  • joson793847469
  • 2016年08月24日 23:10
  • 1137

http请求和http响应的详细解析

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成: l   请求方法URI协议/版本 l   请求头(Request Head...
  • fengzijia
  • fengzijia
  • 2015年12月01日 20:50
  • 2811

移动开发者常见的HTTP请求响应状态码概述

很多开发新手都不知道请求出了问题改怎么办?为什么每次请求都会返回类似下图的东西? 那么你可以保存这篇博客,遇到不同的状态码  来查一下。 下面列出一些移动端(iOS、安卓等)在HTTP请求:...
  • wliu6
  • wliu6
  • 2015年08月26日 12:14
  • 483

HTTP要点概述:三,客户端和服务器,请求和响应

一,客户端和服务器: HTTP协议主要用于客户端和服务器之间的通信。 1,客户端(client):请求访问资源的一端。(知道为啥用C表示客户端了吧) 2,服务器(server):提供资源响应的一...
  • yangzigege
  • yangzigege
  • 2017年03月24日 00:43
  • 226

HTTP协议概述及请求响应入门

概述 HTTP协议用于定义客户端与web服务器通迅的格式。 HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,是TCP/IP协议的一个应用层协议。 HTTP使用...
  • mezipstream
  • mezipstream
  • 2015年07月23日 07:58
  • 172

HTTP请求头概述

  • 2017年10月10日 16:24
  • 6KB
  • 下载

HTTP请求头概述(HttpServletRequest)

  • 2009年01月18日 17:31
  • 6KB
  • 下载

初探Tomcat源码 (1) —— Http请求和响应

HTTP (HTTP-Hypertext transfer protocol),超文本传输协议,是超媒体系统应用之间的通信协议。是一个让网络客户端和服务器端相互传输交互的协议,是Request和Res...
  • tiwerbao
  • tiwerbao
  • 2013年05月05日 04:19
  • 1240

后端开发--Http协议(1):连接与请求/响应报文

后端开发--Http协议(1):连接与请求/响应报文
  • qq_29166327
  • qq_29166327
  • 2017年11月19日 15:42
  • 113

http请求头概述

HTTP请求头概述   HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并...
  • jebe7282
  • jebe7282
  • 2012年06月13日 10:56
  • 942
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP请求和响应1:概述
举报原因:
原因补充:

(最多只允许输入30个字)