指服务器和客户端间进行通信时的约束和规范,客户端与服务端的数据交互并不是杂乱无章的,需要遵照(基于)一定的规范进行。
常见协议
1、HTTP、HTTPS 超文本传输协议
2、FTP文件传输协议
3、SMTP简单邮件传输协议
HTTP协议
即超文本传输协议,网站是基于HTTP协议的,例如网站的图片、CSS、JS等都是基于HTTP协议进行传输的。
HTTP协议是由从客户机到服务器的请求(Request)和从服务器到客户机的响应(Response)进行了约束和规范。
即HTTP协议主要由请求和响应构成。
常用请求方法 POST、GET、PUT、DELETE
请求/响应报文
请求由客户端发起,其规范格式为:请求行、请求头、请求主体。
1、请求行
由请求方式、请求URL和协议版本构成
2、请求头
Host:localhost请求的主机
Cache-Control:max-age=0控制缓存
Accept:*/*接受的文档MIME类型
User-Agent:很重要
Referer:从哪个URL跳转过来的
Accept-Encoding:可接受的压缩格式
3、请求主体
即传递给服务端的数据
注:当以post形式提交表单的时候,请求头里会设置
Content-Type:application/x-www-form-urlencoded,以get形式当不需要
响应/响应报文
响应由服务器发出,其规范格式为:状态行、响应头、响应主体。
1、状态行
由协议版本号、状态码和状态信息构成
2、响应头
Date:响应时间
Server:服务器信息
Content-Length:响应主体长度
Content-Type:响应资源的MIME类型
MIME是标识文件类型的,文件后缀并不能正确无误的标识文件的类型。
客户端与服务器在进行数据传输的时候都是以字节形式进行的,咱们可以理解成是以“文本形式”传输,这时浏览器就需要明确知道该怎么样来解析这些文本形式的数据,MIME就是明确告知浏览器该如何来处理。
3、响应主体
即服务端返回给客户端的内容;
状态码
常见的有200代表成功、304文档未修改、403没有权限、404未找到、500服务器错误
.2.3 调试工具
利用HTTP抓包工具在开发中可以帮我们进行调试,常用抓包工具HttpWatch、Fiddler、Charles、FireBug等
浏览器插件
Firebug、HttpWatch、chrome dev tools
代理软件
Charles、Fiddler