剖析HTTP 高频面试题,从基础到应用一一解读
2023-10-26 02:10:28
HTTP 简介
HTTP(超文本传输协议)是一种用于在万维网上进行数据通信的协议。它是一种客户端-服务器协议,允许客户端(如浏览器)向服务器(如 Web 服务器)发送请求,并接收服务器的响应。HTTP 是万维网的基础,也是互联网上最常用的协议之一。
HTTP 的基本概念
HTTP 有几个基本概念,包括:
- URL(统一资源定位符) :URL 是一个字符串,用于标识互联网上的资源。例如,
https://www.example.com/index.html
是一个 URL,它标识了 example.com 网站的首页。 - 请求 :客户端向服务器发送的请求。请求中包含了客户端想要从服务器获取的数据或执行的操作。
- 响应 :服务器对客户端请求的响应。响应中包含了服务器向客户端发送的数据或执行操作的结果。
- HTTP 方法 :HTTP 方法是客户端请求中指定的操作。最常见的 HTTP 方法有 GET、POST、PUT 和 DELETE。
- HTTP 状态码 :HTTP 状态码是服务器对客户端请求的响应码。最常见的 HTTP 状态码有 200(请求成功)、404(未找到资源)和 500(内部服务器错误)。
TCP 和 UDP
TCP 和 UDP 是两种不同的网络传输协议。TCP 是一种面向连接的协议,这意味着在数据传输之前,客户端和服务器之间必须先建立连接。一旦连接建立,数据就可以在客户端和服务器之间可靠地传输。UDP 是一种无连接的协议,这意味着客户端和服务器之间不需要建立连接,数据可以直接传输。UDP 比 TCP 更快,但它也更不可靠。
HTTP 与 HTTPS
HTTP 是一个不安全的协议,这意味着数据在客户端和服务器之间传输时是未加密的。HTTPS 是 HTTP 的安全版本,它使用 SSL/TLS 协议对数据进行加密,以确保数据的安全。
GET 与 POST
GET 和 POST 是两种最常用的 HTTP 方法。GET 方法用于从服务器获取数据,而 POST 方法用于向服务器发送数据。GET 方法通常用于获取静态数据,例如网页内容或图像。POST 方法通常用于提交表单数据,例如登录信息或注册信息。
HTTP 三次握手
HTTP 三次握手是客户端和服务器之间建立 TCP 连接的过程。三次握手的步骤如下:
- 客户端向服务器发送一个 SYN(同步)数据包。
- 服务器向客户端发送一个 SYN-ACK(同步确认)数据包。
- 客户端向服务器发送一个 ACK(确认)数据包。
经过三次握手,客户端和服务器之间就建立了 TCP 连接。
同源策略
同源策略是一种安全机制,它限制了不同源的脚本访问彼此的数据。同源是指具有相同协议、主机名和端口号的资源。例如,https://www.example.com/index.html
和 https://www.example.com/about.html
是同源的,而 https://www.example.com/index.html
和 http://www.example.com/index.html
则不是同源的。
跨域通信
跨域通信是指不同源的脚本之间进行通信。跨域通信有几种不同的方式,包括:
- JSONP :JSONP 是 JSONP(JSON with Padding)的缩写,它是一种利用