http学习笔记
HTTP学习笔记
HTTP全称 超文本传输协议(HyperText Transfer Protocol),是一种用于在网络上进行数据传输的协议,可以通俗理解为 这是电脑与电脑之间的沟通方式,主要用于网页上。
HTTP的组成和基本概念
- 客户端和服务器:HTTP 通常工作在客户端(如网页浏览器)和服务器之间。客户端向服务器发送请求,服务器处理请求并返回响应。
- 请求和响应:HTTP 的工作方式基于请求-响应模型。客户端发送一个请求(包括请求行、请求头和请求体),服务器处理请求并返回一个响应(包括状态行、响应头和响应体)。
http
定义了选择的协议方式 www.google.com
则对应需要访问的ip地址
ip地址可以理解为每个人的家庭住址
过程:当我们在浏览器上输入一段网址后,浏览器就会发送请求到服务器,服务器接受请求后回传数据,这个数据经过电脑处理后就会返回我们通常看到的网页。
❗️ 并不是只有网址才会触发请求
例如在购物平台购物时,当点击
购物
按钮时,就已经隐匿地向服务器发送了请求,此时架构是在应用中实现
HTTP 方法
HTTP 定义了一些常见的方法来执行不同的操作,包括:
- GET:获取资料,通常用于从服务器获取数据。
- POST:上传资料,用于创建或更新资源。
- PUT:更新指定的资源。
- DELETE:删除指定的资源。
- PATCH:覆盖资料
:star: 区别GET和POST方法:
特性 | GET | POST |
---|---|---|
目的 | 从服务器获取数据或资源 | 向服务器提交数据以处理或存储 |
数据位置 | 数据附加在 URL 的查询字符串中 | 数据放在请求体(Body)中 |
数据量 | 数据量有限,受 URL 长度限制 | 数据量没有严格限制,可以传输大量数据 |
安全性 | 数据暴露在 URL 中,相对不安全 | 数据不暴露在 URL 中,相对较安全 |
缓存 | 请求可以被缓存 | 请求一般不被缓存 |
书签 | URL 可以被书签保存 | URL 不适合直接书签 |
适用场景 | 获取资源或数据,如读取页面或搜索内容 | 提交表单、上传文件、修改或创建资源 |
示例请求 | GET /page?name=value |
POST /submit Content-Type: application/x-www-form-urlencoded name=John&age=30 |
HTTP报文
报文就是客户端和服务器之间沟通所需要遵循的格式
请求结构:
请求行:包含请求方法(如 GET、POST)、请求目标(如 URL)和 HTTP 版本。
请求头:包括客户端环境的信息,如浏览器类型、语言等。
请求体:包含需要发送给服务器的数据。
:star2:示例:http://api/shop.com/card
POST /card HTTP/1.1 *请求行
---
Host:api.shop.com *传送的目标地址与请求行组合成网址
User-Agent:Mozila/5.0(windows...)Chrome *请求的发送地址
Accept:text/plain *可接受的回传档案类型
Content-Type:text/plain *传送的档案类型
Con-Length:43 *内容长度
---
{"card":1234567890."total_price":8787} *内容=>可以推断为刷卡的请求响应结构:
- 状态行:包含 HTTP 版本、状态码(如 200、404)和状态消息。
- 响应头:包含服务器的信息和响应的元数据,如内容类型、长度等。
- 响应体:实际返回给客户端的数据,如网页内容、图片等。
:star2:示例:
HTTP/1.1 200 OK
---
Server:nginx *服务器软体类型
Content-Type:text/plain *回传信息的类型
Content-Length:7 *回传信息的长度
Date:Fri,27 Aug 2021 20:09:07 GMT *回传回去的时间
---
success
:eyes:因此我们可以将请求和相应简单理解为两个人在相互写信,当然写信是需要遵循信的格式的 !
HTTP 状态码
HTTP 状态码用于表示请求的结果,常见的状态码包括:
- 200 OK:请求成功,服务器返回请求的数据。
- 201 Creat: 创建成功
- 301 Moved Permanently:请求的资源已被永久移动到新位置。
- 400 Bad Request: 发送的格式错误力
- 401 Unauthorized:请求的资源比较敏感,需要验证
- 403 Forbidden: 验证身份不合格
- 404 Not Found:请求的资源未找到。
- 500 Internal Server Error:服务器内部错误,无法完成请求。
HTTP与HTTPS的主要区别
- HTTP 是明文传输的,传送的资料都可以被看见,这意味着数据在传输过程中可能被第三方窃听或篡改,非常的不安全。
- HTTPS(HyperText Transfer Protocol Secure超文本传输安全协议)是在 HTTP 的基础上加上了 SSL/TLS 加密层,提供了加密和安全性,保护数据在传输过程中不被窃取或篡改,比较安全,也是目前的主要传输方式。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Elemen的象牙塔!
评论