【楔子】学了计算机网络,如果还不懂里面的核心http协议那就是白学了,建议没有耐心学习计算机网络大厚本的人,了解好http协议就可以了,巩固的话自己亲自抓几个包分析最好。
====================
HTTP(超文本传输协议HyperText Transfer Protocal,HTTP是互联网使用最为广泛的一种协议,所有网页文件都必须遵守这个协议
http重点掌握
- 请求
- 响应
这两种模型
客户端想服务器发送 请求头应该包括:请求的方法,URL,协议版本,请求修饰符,客户信息内容,类似MIME的消息结构
文件后缀 | Mime类型 | 说明 |
.flv | flv/flv-flash | 在线播放 |
.html或.htm | text/html | 超文本标记语言文本 |
.rtf | application/rtf | RTF文本 |
HTTP支持不同的请求命令,这些命令被称为http方法,每条http请求报文都包含一种方法,告诉服务器要执行什么动作
常用 的就是get post delete put,用到的get post最后,这两个区别我们来看一下:
GET | POST | |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。 在发送密码或其他敏感信息时绝不要使用 GET ! | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
HTTP状态码:学习后台的同学一定学会发送正确的状态码给前端,这样才不会让前端困惑
状态码首位 | 已定义范围 | 分类 |
---|---|---|
1xx | 100-101 | 信息提示 |
2xx | 200-206 | 成功 |
3xx | 300-305 | 重定向 |
4xx | 400-415 | 客户端错误 |
5xx | 500-505 | 服务器错误 |
生产环境常见的http状态对应着用户习惯,希望大家去查写的时候也注意规范使用。这是状态码大全参考
http://tool.oschina.net/commons?type=5
客户端发起http请求(请求行,请求头,请求体)--服务器处理http请求返回(响应码,响应头和响应体)
请求行由请求方法和URL及协议版本组成
请求头为名/值组成,主要是互相通知对方一些信息可接受的类型等
请求体就是你要发送的内容了,get的方法请求体包含在url中,而post方法则在请求体中,用表单或者Json方式提交。
想要了解详细的安装Fiddler抓包工具。