HTTP报文分析
来源:互联网 发布:mac搜狗怎么打罗马数字 编辑:程序博客网 时间:2024/06/05 20:52
请求报文:
(1)请求行:请求方法(GET/POST等) 请求URI HTTP/协议版本
(2)请求头(header):由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔
- Host:服务端的主机名
- User-Agent:客户端浏览器信息
- Accept:客户端能接收的mine类型
- Accept-Encoding:是否支持流压缩
- Accept-Charset:客户端字符编码集
- Connection:Keep-Alive 长连接
- ...................
中间有空行------最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。
(3)请求数据(body):请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length。
响应报文:
(1)状态行:HTTP协议版本号 状态码 状态消息状态消息 HTTP/1.1 200 OK
状态码类型:
- 1xx:指示信息--表示请求已接收,继续处理。
- 2xx:成功--表示请求已被成功接收、理解、接受。
- 3xx:重定向--要完成请求必须进行更进一步的操作。
- 4xx:客户端错误--请求有语法错误或请求无法实现。
- 5xx:服务器端错误--服务器未能实现合法的请求。
常见状态代码、状态描述的说明如下。
- 200 OK:客户端请求成功。
- 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
- 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
- 403 Forbidden:服务器收到请求,但是拒绝提供服务。
- 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
- 500 Internal Server Error:服务器发生不可预期的错误。
- 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。
- Date
- Content-Type
- Content-Length
- .............
(3)响应正文
GET和POST的区别:
(1)我们可以看到GET请求消息体为空,POST请求带有消息体。
(2)GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456。POST方法是把提交的数据放在HTTP包的body中。
(3)GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。
(4)GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。
参考:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/28/2612910.html
- HTTP报文分析
- HTTP报文实例分析
- HTTP协议及报文分析
- Tcpdump结合Wireshark分析Http/TCP报文
- wireshark——Http报文分析
- HTTP报文
- HTTP报文
- HTTP报文
- Http报文
- HTTP报文
- HTTP报文
- HTTP报文
- HTTP报文
- Http 报文
- http报文
- HTTP报文
- HTTP报文
- HTTP报文
- JavaSE 常用类 之 String Part1
- jsp或者html导入jquery文件问题(1)
- Spring五个事务隔离级别和七个事务传播行为
- 用hibernate+struts2+easyUI进行增删查改
- 使用UGUI实现数字变化,可以在前后加图片
- HTTP报文分析
- PCB布置的潜规则(持续更)
- JavaMail邮箱账户和密码认证和接收邮件
- 使用cookie与session跟踪客户
- easyui实现多选下拉框添加多选框图标,所选内容放到div里展示
- 铁匠秘籍01
- ADMM:交替方向乘子算法
- Android 系统学习
- arm知识基本