HTTP报文浅析

简介: HTTP报文浅析

HTTP报文浅析


1 请求报文格式说明


HTTP 请求报文由请求行、请求头部、空行、请求包体4个部分组成,如下图所示:



1)请求行——GET、POST


请求行由方法字段、URL 字段 和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开。常用的 HTTP 请求方法有 GET、POST。


GET:


当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。


使用GET方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制,因此GET方法不适合用于上传数据。

通过GET方法来获取网页时,参数会显示在浏览器地址栏上,因此保密性很差。


GET / HTTP/1.1
Host: 192.168.11.80:9889
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive


POST:


当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。


GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,而且长度没有限制,因为POST携带的数据,在HTTP的请求正文中,以名称/值的形式出现,可以传输大量数据。


POST /search HTTP/1.1  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint,application/msword, application/x-silverlight, application/x-shockwave-flash, */*  
Referer: <a href="http://www.google.cn/">http://www.google.cn/</a>  
Accept-Language: zh-cn  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)  
Host: <a href="http://www.google.cn">www.google.cn</a>  
Connection: Keep-Alive  
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g;
NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-FxlRugatx63JLv7CWMD6UB_O_r  
hl=zh-CN&source=hp&q=domety 


2)请求头部


请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。


请求头部通知服务器有关于客户端请求的信息,典型的请求头有:



3)空行


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


4)请求包体


请求包体不在GET方法中使用,而是POST方法中使用。


POST方法适用于需要客户填写表单的场合。与请求包体相关的最常使用的是包体类型Content-Type和包体长度Content-Length。


2 响应报文格式说明


HTTP 响应报文由状态行、响应头部、空行、响应包体4个部分组成,如下图所示:



1)状态行


状态行由 HTTP 协议版本字段、状态码和状态码的描述文本3个部分组成,他们之间使用空格隔开。


状态码:


状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类如下所示:



常见的状态码举例:



更多状态码请看:http://blog.csdn.net/tennysonsky/article/details/45332345


2)响应头部


响应头可能包括:



3)空行


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


4)响应包体


服务器返回给客户端的文本信息。

相关文章
|
8月前
|
Web App开发 存储 缓存
三、《图解HTTP》- 报文内的 HTTP信息
三、《图解HTTP》- 报文内的 HTTP信息
101 0
|
2月前
|
缓存
HTTP 报文解构:深入剖析 HTTP 通信的核心要素
【10月更文挑战第21天】随着网络技术的不断发展和演进,HTTP 报文的形式和功能也可能会发生变化,但对其基本解构的理解始终是掌握 HTTP 通信的关键所在。无论是在传统的 Web 应用中,还是在新兴的网络技术领域,对 HTTP 报文的深入认识都将为我们带来更多的机遇和挑战。
|
2月前
|
JSON 数据格式
HTTP 报文解构
HTTP报文‌的结构主要包括三个部分:起始行、首部和主体
40 0
|
Web App开发 应用服务中间件 nginx
【面试】HTTP 协议报文详细说明
【面试】HTTP 协议报文详细说明
59 1
http协议 报文 给你讲明白咯,web开发基础
http协议 报文 给你讲明白咯,web开发基础
|
8月前
|
Java
【JavaEE初阶】 HTTP响应报文
【JavaEE初阶】 HTTP响应报文
|
网络协议 安全 Linux
深入解析HTTP请求:了解请求特征与报文格式的关键秘密
这篇文章将带您深入了解HTTP请求的特征和报文格式。HTTP作为一种简单、灵活且易于扩展的协议,适用于各种操作系统和设备。我们还将探讨持久性连接如何提高请求的效率。了解HTTP报文的构成,包括起始行、头部字段和消息正文,将帮助您更好地理解HTTP的工作原理。无论您是初学者还是已经有一定了解的读者,本文都将为您提供全面的HTTP知识。
375 1
深入解析HTTP请求:了解请求特征与报文格式的关键秘密
|
8月前
|
Web App开发 存储 缓存
三、《图解HTTP》- 报文内的 HTTP信息
三、《图解HTTP》- 报文内的 HTTP信息
138 0
三、《图解HTTP》- 报文内的 HTTP信息
|
8月前
|
前端开发 JavaScript API
HTTP报文:知识点
HTTP报文:知识点
62 0
|
缓存 网络协议 算法
网络基本功:http报文及TCP拥塞控制机制
网络基本功:http报文及TCP拥塞控制机制

热门文章

最新文章