HTTP请求报文格式

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。

请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和 请求数据 4个部分组成,下图给出了请求报文的一般格式。

(1)请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。
HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET方法和POST方法。
GET:当客户端要从服务器中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方
法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。例
如,/index.jsp?id=100&op=bind。

POST:当客户端给服务器提供信息较多时可以使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据。

(2)请求头部

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

(3)空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

(4)请求数据

请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。

与请求数据相关的最常使用的请求头是 Content-Type 和 Content-Length。

时间: 2024-08-27 03:18:28

HTTP请求报文格式的相关文章

Go语言之进阶篇请求报文格式分析

1. 请求报文格式分析 示例: package main import ( "fmt" "net" ) func main() { //监听 listener, err := net.Listen("tcp", ":8000") if err != nil { fmt.Println("Listen err = ", err) return } defer listener.Close() //阻塞等待用户

HTTP POST请求报文格式分析与Java实现文件上传

时间 2014-12-11 12:41:43  CSDN博客 原文  http://blog.csdn.net/bboyfeiyu/article/details/41863951 主题 HTTPHttpComponents 在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较麻烦的事情就是构造文件上传的HTTP报文格式,这个格式虽说也比较简单,但也

http协议基础 4. http请求报文格式

1.http请求报文的格式 请求报文的起始行包括 :请求方法 (Get Post Head等八种请求方式) + 请求URL (此处为URL定位到请求的地方)  + 请求的协议 图中为http1.0 请求头也就是图中首部包括:头部字段名 :头部字段名的值   (之前遇到过一个跨域访问接口的问题,也是在响应的报文头部加上字段之后可以实现跨域访问,之后我会整理一篇来阐述) 比如常见的: Accept:表示客户端接受的内容类型,按照先后顺序表示客户端接收数据的先后次序 X-Requested-With:

HTTP请求、响应报文格式

HTTP请求报文格式: HTTP请求报文主要由请求行.请求头部.请求正文3部分组成 1,请求行 由3部分组成,分别为:请求方法.URL(见备注1)以及协议版本,之间由空格分隔 请求方法包括GET.HEAD.PUT.POST.TRACE.OPTIONS.DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的 协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1 2,请求头部 请求头部为请求报文添加了一

http请求报文

HTTP请求报文格式 status-line 格式为:request-uri(即想要请求获得的东西) HTTP版本号 headers<0个或多个> <blank line> body 请求头 status-line headers部分 一个例子 E..`[email protected]@.(Q.... .......P.j#d.... .....q.......j.. .l..GET./styles/ nav.css.HTTP/1.1 ..Host:.software .hitw

HTTP协议浅析(中):请求报文和响应报文

1. 请求报文格式 1.1 服务器测试代码 服务器测试代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main() { // 创建通信端点:套接字 int s

使用SoapUI生成WS请求报文

WSDL地址示例:http://10.1.84.10:8100/webService/common/mail?wsdl 打开SoapUI,创建一个Project,输入wsdl地址就ok. 1.访问wsdl,你可以直接使用浏览器查看或者利用SoapUI再创建好的Project上导出xml文件.打开导出的文件,copy出xml文件结尾处的那一段内容,我这里是<soapenv:Body></soapenv:Body>节点.在这个节点中copy出需要使用的SoapAction的soap报文

ARP报文格式

ARP/RARP报文格式 地址解析协议ARP(Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议. 报文格式 字段 长度(bit) 含义 Ethernet Address of destination 48比特 目的以太网地址.发送ARP请求时,为广播的MAC地址,0xFF.FF.FF.FF.FF.FF. Ethernet Address of sender 48比特 源以太网地址. Frame Type 16比特 表示后面数据的类型.对于ARP请求或

IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式

IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个bit.标识包括选项在内的IP头部字段的长度. 3.服务类型:8个bit.服务类型字段被划分成两个子字段:3bit的优先级字段和4bit TOS字段,最后一位置为0. 4bit的TOS分别代表:最小时延,最大吞吐量,最高可靠性和最小花费.4bit中只能将其中一个bit位置1.如果4个bit均为0,则