HTTP 请求报文和响应报文分析和解刨!!
http请求和响应报文分析
一》http请求报文主要包括三个部分:1.请求行;2.请求头;3;请求体;
1,请求行一般包括三个部分:请求方式;请求url ; http协议版本。
请求方法:大部分浏览器使用post和get方法;其他还有:delete,put,head,options...
请求url:为请求的url地址,它和报文头的host属性组成完整的请求url;
http协议版本:指协议名称和版本号;
请求头:是http的报文头,包含了若干属性,属性格式为:“属性” :“属性值”,服务端依次获取客户端信息;
请求体:是http的报文体,它可以将页面表单中的组件值已value=name||value=name;的键值对形式编码成一格式化串,它承载多个请求的参;
其二请求url也可以通过浏览器地址栏的数据格式传递请求的参数;
引用
audio/mpeg
audio/ogg
multipart/form-data
text/css
text/html
text/xml
text/csv
text/plain
image/png
image/jpeg
image/gif
}
响应报文的开始是状态行,包括三项内容:http版本,状态吗 ,解释状态码的简单的短语
在响应报文中唯一真正的区别在于第一行中用状态信息代替了请求的信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。
状态行的格式如下:
http-version status-code reason-Phrase crlf;
1.http-version 表示服务器http协议的版本;
2, status-code 表示服务器发回的响应状态码;
3 ,reason-phrase 表示状态吗的文本描述
状态吗有三位数字,第一个数字定义了响应的类别,且有五钟可能的取值:
1xx:指示信息-表示请求已接收,继续处理。
2xx: 成功-表示请求已被成功的接收。理解。接受
3xx; 重定向-要完成请求必须更进一步的操作{一般表示请求资源的得路径变化和数据异常}
4xx:客户端错误-请求的语法错误或者请求无法实现
5xx: 服务端错误-服务器不能实现合法请求。
http常见问题
http协议是无状态的,它和connection:keep-alive是有区别的;
无状态是指协议对于事物处理没有记忆的功能,服务器不是知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页没有任何的联系。http是一个无状态面向连接的协议,无状态不代表http不能保持tcp连接,更不能代表http使用的是udp协议。
从http/1.1起,默认都开启了keep-alive,,保持连接性,简单的说,当一个网页打开完成后,客户端和服务端用于传输http数据的tcp不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已建立的连接。kep-alive不会永远保持连接,他有一个保持时间,可以在不同的服务器软件中设定这个时间。
TCP (打电话)是长连接 稳定 TCP连接的建立需要三次握手
UDP (写信)无连接 不稳定 用户数据报协议,是一个面向无连接的协议。采用该协议不需要两个应用程序先建立连接。UDP协议不提供差错恢复,不能提供数据重传,因此该协议传输数据安全性差
HTTP 是短连接
常用的HTTP请求方法
GET 参数追加在URL后 长度受限制 不安全
POST 参数在请求报文的请求数据部分 参数长度比GET长 安全
一,get 请求
当客户端想从服务器读取文档时,点击网页上的超链接或者在浏览器输入框内输入地址按回车时,都是发送的get请求,服务器根据请求的地址从资源文件中找到客户
想要的资源文件,放在响应报文中的相应数据部分送给客户端{使用get请求需要将请求参数放在URL之后,以?分割,多个参数用&连接;这种请求对URL的长度有限制,一般只能识别1024个字符,并且会把参数值直接暴露在URL中,所以不适合大量传输数据,和私密传输数据}
二,post 请求
对于上面提到的不适合使用GET方式的情况,可以考虑使用POST方式,因为使用POST方法可以允许客户端给服务器提供信息较多。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。如果使用POST方式的话,格式如下:
POST /search HTTP/1.1
Accept: image/gif, image/x-xbitmap
Connection: Keep-Alive
.......
username=zhangsan&password=123
可以看到,POST方式请求行中不包含数据字符串,这些数据保存在”请求内容”部分,各数据之间也是使用”&”符号隔开。POST方式大多用于页面的表单中。因为POST也能完成GET的功能,因此多数人在设计表单的时候一律都使用POST方式,其实这是一个误区。GET方式也有自己的特点和优势,我们应该根据不同的情况来选择是使用GET还是使用POST。
HTTP 请求报文和响应报文分析和解刨!!的更多相关文章
- 重温Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...
- HTTP请求报文与响应报文
http://docs.telerik.com/fiddler/KnowledgeBase/HTTP HTTP请求报文与响应报文 HTTP http://www.w3.org/Protocols/rf ...
- 关于HTTP请求报文和响应报文学习笔记
超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层的一种通信协议.它是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接 ...
- HTTP的请求报文与响应报文
报文: 简单来说,报文就是也就是HTTP报文,作用是在各个系统之间进行和响应时用来交换与传输的数据单元,即站点一次性要发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义 ...
- Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应 ...
- HTTP请求报文与响应报文格式
请求报文包含三部分: a.请求行:包含请求方法.URI.HTTP版本信息 b.请求首部字段 c.请求内容实体 响应报文包含三部分: a.状态行:包含HTTP版本.状态码.状态码的原因短语 b.响应首部 ...
- 一个HTTP连接是包含两部分的,请求报文和响应报文这俩组合起来才是一次完整的HTTP请求,并不会单独显示请求报文或者响应报文
一个HTTP连接是包含两部分的,请求报文和响应报文这俩组合起来才是一次完整的HTTP请求,并不会单独显示请求报文或者响应报文. 2.注意看,一次HTTP请求,是包括这两部分的
- http协议请求报文与响应报文分析
什么是HTTP协议: HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到 不断地完善和扩展.目前在WWW中使用 ...
- IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式
IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...
随机推荐
- 洛谷 P2121 拆地毯
P2121 拆地毯 题目背景 还记得 NOIP 2011 提高组 Day1 中的铺地毯吗?时光飞逝,光阴荏苒,三年过去了.组织者精心准备的颁奖典礼早已结束,留下的则是被人们踩过的地毯.请你来解决类似于 ...
- D - Mayor's posters
D - Mayor's posters POJ - 2528 思路:线段树+离散化. 离散化时注意特殊情况,如果两个数相差大于一,离散时也应该差1.比如 1 3 离散后应该为 1 2. 错因: 1.二 ...
- 南洋理工大学 ACM 在线评测系统 矩形嵌套
矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a& ...
- Arcengine设置坐标系
转自原文 Arcengine设置坐标系 ArcGIS Engine提供了一系列对象供开发者管理GIS系统的坐标系统. 对大部分开发者而言了解ProjectedCoordinateSystem, Geo ...
- 逻辑斯蒂回归3 -- 最大熵模型之改进的迭代尺度法(IIS)
声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用.欢迎转载,但请注明出处(即:本帖地址). 2,因为本人在学习初始时有非常多数学知识都已忘记.所以为 ...
- Linux GDB程序调试工具使用简单介绍
GDB概述 GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软件,你会发现GDB这个调试 ...
- Android之怎样更改获取焦点的先后顺序
在组件中增加<requestFocus />能够首先获得焦点 以TextView为例: 例如以下: <TextView android:layout_width=&q ...
- BZOJ3172 单词 Fail树
题目大意:求一篇论文中每个单词分别在论文中出现多少次. 本题用AC自动机太慢,应该用Fail树将AC自动机中所有的Fail指针反向得到一个新树,这就是Fail树.对长度为x的字符串a和长度为y的字符串 ...
- PowerShell攻防进阶篇:nishang工具用法详解
PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...
- Epos消费管理系统复制迁移SQL SERVER 2005数据库
先脱机 原来要关闭Epos消费管理系统软件才可以让对应的数据库脱机