书接上回,我们进一步学习HTTP协议格式
一.HTTP请求
(一)方法
关于方法参考下面表格:
虽然有这么多方法,但是在开发使用上get,post方法占比大部分,所以我们重点学习分析这两个方法.
1)get方法
场景;任何会获取数据的请求
习惯用法是把要传给服务器的数据加到URL的query string中
通常情况下,get请求中不含有body
2)post方法
场景:提交数据,如登录,上传文件
习惯用法要把传输到服务器的数据放到body中
但是get和post的没有什么本质区别,是可以互相替代的,更多的是语义上的区分!
(二)请求"报头"Header
Heard中有很多不同的键值对,主要选择其中重要的学习!
1) Host
表示服务器主机的地址和端口
2)Content-Length
表示body中的数据长度(传输层粘包问题)
3)Content-Type
表示body中的数据的格式(如:json,form表单,form-data)
4)User-Agent(UA)
表示浏览器/操作系统的属性(版本信息)
随着浏览器的功能越来越完善,版本之间更兼容,现在的UA更多是用来PC端还是移动端.
5)Referer
表示这个页面是从哪个页面跳转过来的
如果直接在浏览器中输入URL, 或者直接通过收藏夹访问页面时是没有 Referer 的
6)Cookie
Cookie可以认为是浏览器在本地存储数据的一种机制.
Cookie 中存储了一个字符串, 这个数据可能是客户端(网页)自行通过 JS 写入的, 也可能来自于服务器(服务器在 HTTP 响应的 header 中通过 Set-Cookie 字段给浏览器返回数据).
存储的数据格式也是键值对,内容可能会是上一次的登录时间,上一次的访问时间,用户的身份信息,累计的访问次数,这些都是临时的数据,存储在服务器上更合适,也更安全,一直存活到这个"令牌"过期