授课语音

网络基础与 HTTP 基础知识

理解网络和 HTTP(超文本传输协议)是现代 web 开发的基础。以下内容将介绍网络的基本概念和 HTTP 协议的基础知识。


网络基础

1. 网络概念

网络 是指由一系列设备(如计算机、服务器、路由器等)通过通信线路连接在一起,用来进行信息交换的系统。常见的网络有局域网(LAN)和广域网(WAN)。

  • 局域网 (LAN):局限在一个小区域(如家庭或公司内部)的网络。
  • 广域网 (WAN):覆盖大范围地理区域的网络,最典型的例子是互联网。

2. 网络协议

网络协议 是网络设备之间通信的规则。它规定了数据如何格式化、传输以及如何进行错误检测和恢复。

常见的网络协议有:

  • TCP/IP:传输控制协议/因特网协议,是互联网通信的基础协议。
  • HTTP/HTTPS:超文本传输协议(HTTP)和其加密版本 HTTPS,用于 web 页面和浏览器的通信。
  • FTP:文件传输协议,用于文件的上传和下载。
  • DNS:域名系统,将域名转换为 IP 地址。

3. IP 地址与 DNS

  • IP 地址:每个设备在网络中的唯一标识符,可以是 IPv4(如 192.168.1.1)或 IPv6(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。

  • DNS:域名系统(DNS)是将域名(如 www.example.com)解析为 IP 地址的服务。


HTTP基础

1. HTTP 协议概述

HTTP(HyperText Transfer Protocol) 是一个无状态的应用层协议,用于客户端和服务器之间交换数据。它是 Web 中最重要的协议之一。

  • HTTP 是无状态的:每次请求都是独立的,服务器不会记住客户端的状态。
  • HTTP 是请求/响应模型:客户端发出请求,服务器处理请求并返回响应。

2. HTTP 请求

HTTP 请求由以下几个部分组成:

  1. 请求行:包含 HTTP 方法、请求的 URL 和 HTTP 版本。

    • 示例:GET /index.html HTTP/1.1
  2. 请求头:包含关于客户端和请求的信息,如浏览器类型、可接受的内容类型等。

    • 示例:User-Agent: Mozilla/5.0
  3. 请求体(可选):通常在 POST 请求中包含,用来发送数据到服务器(如表单数据)。

常见的 HTTP 请求方法:

  • GET:从服务器获取资源。
  • POST:向服务器发送数据(如表单提交)。
  • PUT:更新服务器上的资源。
  • DELETE:删除服务器上的资源。
  • HEAD:类似 GET,但不返回响应体,仅返回响应头。
  • OPTIONS:查询服务器支持的 HTTP 方法。

3. HTTP 响应

HTTP 响应由以下几个部分组成:

  1. 响应行:包含 HTTP 版本、状态码和状态消息。

    • 示例:HTTP/1.1 200 OK
  2. 响应头:包含关于响应的各种信息,如服务器类型、内容类型、缓存信息等。

    • 示例:Content-Type: text/html
  3. 响应体(可选):服务器返回的实际数据,如 HTML 文件、JSON 数据等。

常见的 HTTP 状态码:

  • 200 OK:请求成功,返回请求的资源。
  • 201 Created:资源创建成功。
  • 400 Bad Request:请求无效,可能缺少必要的参数或语法错误。
  • 401 Unauthorized:请求未授权,需要身份验证。
  • 404 Not Found:请求的资源不存在。
  • 500 Internal Server Error:服务器错误,无法处理请求。

4. HTTP 请求和响应的交互流程

  1. 客户端(浏览器或应用)发出 HTTP 请求。
  2. 服务器接收到请求后,处理并返回相应的数据(如网页、图片、JSON 数据等)。
  3. 客户端根据响应的数据渲染页面或执行相应操作。

5. HTTP 与 HTTPS

  • HTTP(超文本传输协议):数据以明文传输,容易被窃听或篡改。
  • HTTPS(安全的 HTTP):在 HTTP 上加入了 SSL/TLS 协议进行加密,保证数据传输的安全性和完整性。

HTTP 请求头与响应头

1. 常见请求头

  • User-Agent:浏览器的信息,用于告知服务器请求来自于哪个浏览器。

    • 示例:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
  • Accept:告诉服务器客户端能够处理的内容类型。

    • 示例:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  • Host:指定请求的服务器主机名。

    • 示例:Host: www.example.com
  • Content-Type:指定请求体的内容类型。

    • 示例:Content-Type: application/json

2. 常见响应头

  • Content-Type:返回数据的内容类型。

    • 示例:Content-Type: text/html; charset=UTF-8
  • Content-Length:响应体的长度(字节数)。

    • 示例:Content-Length: 1234
  • Set-Cookie:设置 Cookie,客户端可以将其存储以便后续请求中使用。

    • 示例:Set-Cookie: sessionId=abc123; Path=/; HttpOnly
  • Cache-Control:指定缓存策略。

    • 示例:Cache-Control: no-cache, no-store, must-revalidate

HTTP 方法与 RESTful API

RESTful API 是一种基于 HTTP 的 Web 服务设计风格,使用 HTTP 方法来对资源进行操作。它的核心原则是:

  • GET:获取资源。
  • POST:创建资源。
  • PUT:更新资源。
  • DELETE:删除资源。

RESTful API 示例

假设有一个简单的资源 User,它有以下接口:

  • GET /users:获取所有用户。
  • GET /users/{id}:获取指定用户。
  • POST /users:创建新用户。
  • PUT /users/{id}:更新指定用户。
  • DELETE /users/{id}:删除指定用户。

总结

  • 网络基础:网络是计算机和设备通过通信协议连接起来的系统,常见协议如 TCP/IP 和 HTTP/HTTPS。
  • HTTP 基础:HTTP 是无状态的应用层协议,主要用于客户端与服务器之间的通信。它包括请求和响应,常用的 HTTP 方法有 GET、POST、PUT、DELETE 等,常见的状态码有 200、404、500 等。
  • HTTP 请求与响应头:HTTP 请求头携带客户端的信息,响应头携带服务器返回的信息,二者都对 Web 应用的行为有重要影响。

理解这些基本概念是进行 Web 开发的基础,也是更高层次 Web 技术(如前端开发、API 设计等)的基础。

去1:1私密咨询

系列课程: