浏览器和服务器之间的通讯,最常用的通讯协议之一就是 HTTP 协议。HTTP(HyperText Transfer Protocol,超文本传输协议),互联网上应用最广泛的一种网络协议,用于定义 Web 浏览器与 Web 服务器之间交换数据的过程。
[ 特点 ] 基于请求 / 响应模型的协议。请求和响应必须成对出现,且先有请求后有响应。
HTTP 协议默认的端口是:80 。如,http://www.webpiece.cn:80
// 版本
HTTP/1.0,发送请求,创建一次连接,获得一个 Web 资源,连接断开。
HTTP/1.1,发送请求,创建一个连接,获得多个 Web 资源,连接断开。
[ HTTP 事务 ] 一个完整的 http 请求是怎样一个过程呢? // 抓包工具:HttpWatch(仅支持 IE)
请求过程:浏览器向服务器发送一个包含命令和 URL 的请求报文;响应过程:当服务器接收到请求报文后,会进行一系列计算,然后,向浏览器返回一个响应报文,浏览器接收到响应报文会将报文的主体显示在浏览器上。
[ HTTP 报文 ] ~ 分为请求报文和响应报文,它们都是由三部分组成:头行、头部和主体。
HTTP 请求包括:请求行、请求头、请求体;
HTTP 响应包括:响应行、响应头、响应体。
请求报文
[1] 请求行:HTTP 请求格式的第一行,格式:请求方式 资源路径 协议/版本
[ 请求方式 ] 协议规定了 7 种方式,在使用时,需要注意使用场景(获取、发送、请求、删除)与其方法相对应。
常用的请求方式是:get 请求和 post 请求。
(1)GET 请求:将请求参数追加在 URL 后面,不安全;URL 长度限制 GET 请求方式的数据大小(浏览器不同,有所不同,一般不大于 8kb);没有请求体。
(2)POST 请求:请求参数显示请求体处,较安全;请求数据大小没有显示。
只有表单设置为 method="post" 才是 post 请求,其他的都是 get 请求。
常见 GET 请求:地址栏直接访问、
[2] 请求头:通常以键值对(key:value)方式传递数据 — key 为规范规定的固定值,value 为 key 对应的取值。
[3] 请求体:通常情况下,只有 post 请求才会使用到请求体,请求体中都是用户表单提交的数据,每一项数据都使用键值对,多组值使用 & 连接。如,username=tom&password=12345。
响应报文
[1] 响应行:协议/版本 + 状态码 + 状态码描述
[ 状态码 ] 服务器与浏览器用于确定状态的固定数字号码。
[2] 响应头:服务器通过响应头(键值对)来控制浏览器的行为,不同的头,浏览器操作不同。
[3] 响应体:服务器发送给浏览器的正文。
閱讀更多 webpiece 的文章