前言
http和html前面ht都是超文本的意思,所以他们两个是非常紧密的一对,我们可以认为http就是为了传输html这样的文件存在的,http位于应用层,偏于解释。他主要可以分为请求消息和响应消息
http响应消息
我们要开发的服务器与浏览器之间通讯就是采用的http协议
我们可以使用抓包工具来获取一下我们请求信息,他其中最重要的为四部分
- 请求头:说明请求的类型,要访问的资源,以及使用的版本
- 请求行:说明服务器使用的附加信息,都是键值对
- 空行:不能省略,而且是\r\n结尾
- 请求数据:表明请求的特定内容,比如登录的时候,密码和用户名都作为请求数据
请求类型
- Get 请求页面信息,并返回实体主体
- Post 向指定资源提交数据进行处理请求,数据被包含在请求体中
- Head 类型于get,但是响应消息没用内容,只获得报头
- Put 从客户端向浏览器传送的数据取代指定文档内容
- Delete Http/1.1协议中预留给能够将l连接改为管道方式的代理服务器
- Connect 允许客户端查看浏览器性能
- Trace 回显服务器收到请求,主要用于测试和诊断
注:get和post都是请求资源,都会提交数据,但是提交密码使用get请求,就会明文显示,而post则不会显示出涉密信息
http常见返回码
状态码由三个数字组成,主要可以分为五类
- 1xx 指示信息,表示请求以接受,继续处理
- 2xx 成功,表示指令已经被成功接受,理解,接受
- 3xx 重定向,要完成请求必须进行更进一步操作
- 4xx 客户端错误,请求语法错误或者请求无法实现
- 5xx 服务器端错误,服务器未能实现合法请求
常用状态码
- 200 OK 成功
- 301 重定向
- 400 语法错误
- 401 未授权
- 403 受到请求,但是拒绝服务
- 404 请求资源错误,或者输入了错误的URL
- 500 服务器发生了不可预期的错误
- 503 当前不能处理,一段时间恢复正常
301 和 302的区别
在301中数据被永久的移除了,搜索引擎抓取新内容的同时将旧网址交换为重定向之后的网址
302表示旧地址资源还在,这个重定向只是临时从旧地址跳转到地址B,搜索引擎还保持旧的网址
常见文件分类
http与浏览器交互时,为使浏览器能够识别文件信息,所以需要传递文件类型,这也是响应消息必填项,常见的类型如下:
- 普通文件: text/plain; charset=utf-8
- *.html: text/html; charset=utf-8
- *.jpg: image/jpeg
- *.gif: image/gif
- *.png: image/png
- *.wav: audio/wav
- *.avi: video/x-msvideo
- *.mov: video/quicktime
- *.mp3: audio/mpeg