- 客户端: 主动发起网络请求的一端
- 服务器: 被动接收网络请求的一端
- 请求: 客户端给服务器发送的数据
- 响应: 服务器给客户端返回的数据
HTTP中的方法:GET、POST(HTTP 请求中的首行第一个部分)
GET : 常用于获取服务器上的某个资源
POST: 多用于提交用户输入的数据给服务器(如登录页面)
GET和POST的区别:没有本质区别
- 约定上,GET把客户端的数据放在query srting(URL中),POST 习惯上会把客户端的数据通过 body 来传输(query string 部分是空的)
- GET 习惯上用于从服务器获取数据;POST 习惯上是客户端给服务器提交数据
-
POST比GET安全,因为数据在地址栏上不可见然而,从传输的角度来说,他们都是不安全的,因为HTTP在网络上是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文 -
更多可查看:面试官:说一下 GET 和 POST 的区别? · Issue #145 · febobo/web-interview · GitHub
Header 请求头
请求头包括:
- 请求方法(Request Method):指明了客户端要对服务器执行的操作,常见的方法有GET、POST、PUT、DELETE等。
- 请求URL(Request URL):指定了客户端要请求的资源的URL地址。
- 协议版本(Protocol Version):指定了客户端使用的HTTP协议版本,如HTTP/1.1。
- Host(主机):指定了请求的目标服务器的主机名和端口号。
- User-Agent(用户代理):标识了发起请求的客户端应用程序的信息,包括操作系统、浏览器版本等。
- Accept(接受内容类型):指定了客户端能够接受的响应内容的类型。
- Content-Type(内容类型):指定了请求体中发送的数据的类型。
- Authorization(授权信息):用于在请求中传递授权凭证,以便客户端进行身份验证。
- Cookie(HTTP Cookie):用于在请求中传递保存在客户端的会话信息
Content-Type表示body的数据格式
application/json
此时 body 数据为 json 格式
application/x-www-form-urlencoded
multipart/form-data
Cookie
浏览器提供本地存储数据的能力
Cookie 中存储了一个字符串,是键值对结构的,键值对之间使用 ;分割,键和值之间使用 = 分割
Cookie 这个数据可能是客户端(网页)自行通过 JS 写入的,也可能来自于服务器在 HTTP 响应的 header 中通过 Set-Cookie 字段给浏览器返回数据。
ps:小程序中没有cookie
请求体(RequestBody)
请求体(RequestBody)是在HTTP协议中用于传输客户端向服务器发送的数据的部分。它是HTTP请求中可选的组成部分,用于向服务器传递请求所需的参数、内容或者数据。请求体通常出现在POST、PUT等请求方法中,用于发送客户端的数据给服务器。请求体可以包含各种类型的数据,如表单数据、JSON数据、文件等。具体的数据类型由请求头中的Content-Type字段来指定。常见的请求体格式有以下几种
- 表单数据(application/x-www-form-urlencoded):将请求参数按照key-value的形式进行编码,以便传输。
- JSON数据(application/json):将请求参数以JSON格式进行编码,用于传递结构化的数据。
- 文件上传(multipart/form-data):用于向服务器上传文件,请求体中包含了文件的二进制数据和相关的元数据。
响应头
响应头(Response Header)是在HTTP协议中用于描述服务器响应的元数据。它是服务器在响应客户端请求时发送给客户端的一部分响应信息,包含了服务器的相关配置和响应内容的描述。响应头通常包含以下几个部分:
- 状态码(Status Code):表示服务器对请求的处理结果的状态码,如200表示成功、404表示未找到资源等。
- 状态消息(Status Message):对状态码的文本描述,如200的状态消息是"OK"。
- 协议版本(Protocol Version):指定了服务器使用的HTTP协议版本。
- Content-Type(内容类型):指定了服务器返回的响应内容的类型。
- Content-Length(内容长度):指定了响应内容的长度。
- ETag(实体标记):用于实体的缓存控制,客户端可以通过该标记判断资源是否改变。
- Location(重定向地址):用于重定向响应,客户端可以根据该字段的值重新发送请求。
- Set-Cookie(设置Cookie):用于在响应中设置Cookie,服务器可以通过该字段在客户端保存会话信息。
响应中的Content-Type:
-
text/html
- text/css
- application/javascript
- application/json
状态码:
-
200 访问成功
- 404 表示没有找到资源
- 403 访问被拒绝
- 405 访问的服务器不能支持请求中的方法或者不能使用该请求中的方法
- 500 服务器内部出现错误
- ... 302、301
响应体
响应体(ResponseBody)是在HTTP协议中用于传输服务器响应给客户端的数据的部分。它是HTTP响应中的一个组成部分,包含了服务器返回的实际响应内容。响应体通常出现在服务器返回成功的响应中,如200 OK。响应体可以包含各种类型的数据,如HTML页面、JSON数据、文件等。具体的数据类型由响应头中的Content-Type字段来指定。常见的响应体格式有以下几种:
- 文本数据(text/plain):包含了纯文本数据。
- HTML数据(text/html):包含了HTML格式的文档。
- JSON数据(application/json):包含了以JSON格式编码的数据。
- 文件数据(application/octet-stream):包含了二进制文件的数据。
AJAX
AJAX( Asynchronous Javascript And XML):是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 ajax)如果需要更新内容,必需重载整个网页面。
实现:
- 原生XMLHttpRequest
- JQuery
- Axios
CDN 的全称是 Content Delivery Network。即内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
参考:
【计算机网络】HTTP 协议详解_http协议解析-优快云博客
3分钟让你学会axios在vue项目中的基本用法(建议收藏)_vue axios-优快云博客
面试官:说一下 GET 和 POST 的区别? · Issue #145 · febobo/web-interview · GitHub
6387

被折叠的 条评论
为什么被折叠?



