浏览器: 一个应用程序,用于查看网络上的一些数据。一般是页面。
服务器: 一个应用程序,用于响应浏览器的请求,负责返回数据。
HTTP协议
浏览器和服务器之间使用的协议叫做HTTP协议。
HTTP协议: 规定了前端与后端如何进行传递数据。
HTTP请求
HTTP请求: HTTP协议的实例。包含四个部分: 请求首行,请求头,请求空行,请求正文。
请求首行: 包含本次的URL,以及请求类型,以及服务器地址等信息
请求头: 一些设置。这些设置都是以K:V的形式存储的。
请求空行: 负责分割请求头和请求正文。
请求正文: 携带的具体的内容。
HTTP请求类型
HTTP请求类型: 常用的有两种,get和post
get: 没有请求正文,用于向服务器上要数据。触发方式多种多样。地址栏、各种媒体标签、图片标签、a标签、表单、ajax等触发方式。 携带的信息在URL的query部分。
post: 有请求正文,用于向服务器上放数据。触发方式: 表单和ajax。携带的数据量没有上限。
URL 统一资源定位符
URL: 统一资源定位符。一个url代表一个资源在网络上的唯一地址。
例如: http://localhost:3000/html/login.html?a=1&b=2&c=3#haha
该URL包含:
http: 协议部分
localhost: 主机名部分
3000 端口号部分
localhost:3000 主机
/html/login.html pathname部分
?a=1&b=2&c=3 search部分
a=1&b=2&c=3 query部分
/html/login.html?a=1&b=2&c=3 path部分
#haha hash部分
协议: 指的是至少两方定下的规则。而Http协议指的是浏览器和服务器之间定下的规则。
简单来说: HTTP协议规定了浏览器如何发送请求,服务器如何解析请求,服务器如何返回响应,浏览器如何解析响应。
当浏览器地址栏中输入一个URL地址,并按下回车,此时,浏览器会分析URL,并发送HTTP请求,该请求是按照HTTP协议规则生成的。它包含四个部分: 请求首行、 请求头、 请求空行、 请求正文。
请求首行
network上的General部分
请求头
network上的Request Headers部分
cache-constrol 表示的是是否有缓存
connection表示本次的连接方式 keep alive表示的是保持连接 第一个连接打开之后,如果后续还有请求,不会销毁该连接而是复用该连接。 避免了多次创建和销毁连接的开销。
user-agent: 表示本次浏览器的信息 服务器可以获知
请求空行
就是为了分隔请求头和请求正文的 因为请求头和请求正文都是一些键值对 需要分隔开
请求正文
get请求没有请求正文
post请求有请求正文 正文内容也是k=v对
响应头
响应空行
没有, 响应首行可以认为是没有也可以认为与请求首行一致。因为连接都已经建立了。
响应正文