前端面试题系列文章:
- 【1】备战前端实习面试之HTML篇
- 【2】备战前端实习面试之CSS篇
- 【3】备战前端实习面试之JavaScript篇
- 【4】备战前端实习面试之React篇
- 【5】备战前端实习面试之Vue篇
- 【6】备战前端实习面试之Node.js篇
- 【7】备战前端实习面试之浏览器篇
- 【8】备战前端实习面试之性能优化篇
- 【9】备战前端实习面试之计算机网络篇
- 【10】备战前端实习面试之手写代码篇
- 【11】备战前端实习面试之代码输出结果篇
计算机网络
从url到渲染
HTTP 协议
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本(HTML)文档的应用层协议。它是在客户端和服务器之间进行通信的一种规范,用于请求和响应数据。
HTTP 的主要特点包括:
- 无连接:每个 HTTP 请求都是独立的,服务器不会保留之前的任何请求状态。这意味着每个请求都需要进行完整的连接、传输和关闭,无法直接利用已经建立的连接。
- 无状态:HTTP 协议本身不对请求和响应之间的状态进行持久化保存。服务器不会保留之前请求的任何信息,每个请求都是相互独立的。这导致服务器无法感知客户端之间的关联和状态。
- 简单灵活:HTTP 的设计目标之一是简单性,它的方法和头部字段的语义相对简单,易于理解和实现。同时,HTTP 协议也具备一定的灵活性,允许根据需要添加自定义的头部字段和扩展功能。
- 支持缓存:HTTP 协议支持缓存机制,可以将经常请求的资源保存在客户端或代理服务器上,减少对服务器的请求,提高访问速度和性能。
HTTP 协议使用请求-响应模型,客户端发起一个请求,服务器接收请求并返回响应。请求和响应的结构由方法(如 GET、POST、PUT、DELETE)、URL、协议版本、头部字段和可选的主体组成。HTTP 的工作流程如下:
建立连接:客户端通过 TCP(Transmission Control Protocol)与服务器建立连接。默认使用端口号 80 ,如果使用加密的 HTTPS 则使用端口号 443 。
发送请求:客户端向服务器发送 HTTP 请求,请求由以下几部分组成:
- 请求行:包含请求方法、请求 URL 和协议版本
- 请求头部:包含与请求相关的各种信息,如用户代理、内容类型等
- 请求主体(可选):用于传输请求的数据,如表单数据、JSON 数据等
处理请求:服务器接收到请求后,根据请求行中的方法和 URL 进行处理,并生成相应的响应。
发送响应:服务器将生成的 HTTP 响应发送回客户端,响应由以下几部分组成:
- 状态行:包含协议版本、状态码和状态消息。
- 响应头部:包含与响应相关的各种信息,如内容类型、缓存控制等。
- 响应主体:包含服务器返回的数据,如 HTML 页面、JSON 数据等。
- 关闭连接:在请求和响应完成后,客户端和服务器都可以选择关闭连接,释放资源。
HTTP 协议定义了一些常见的请求方法,包括:
- GET:从服务器获取资源。
- POST:向服务器提交数据,用于创建新资源或进行处理。
- PUT:将数据发送到服务器,用于更新现有资源。
- DELETE:删除服务器上的资源。
- PATCH:部分更新服务器上的资源。
- HTTP 协议还支持一些其他功能,如缓存控制、身份验证、重定向、内容压缩等。
总结起来,HTTP 协议是一种用于在客户端和服务器之间传输数据的协议,它采用请求-响应模型,通过请求方法和 URL 标识资源,并使用各种头部字段来传递额外的信息。HTTP 协议在 Web 开发中广泛应用,为浏览器和服务器之间的数据交换提供了一种标准化的方式。
TLS 连接
什么是 HTTP3
HTTP1.0/1.1/2.0 的区别
GET 和 POST 的区别
- GET 一般是获取数据,POST 一般是提交数据
- GET 参数会放在 url 上,安全性比较差,POST 是放在 body 中
- GET 请求刷新服务器或退回是没有影响的,POST 请求退回时会重新提交数据
- GET 请求时会被缓存,POST 请求不会被缓存
- GET 请求会被保存在浏览器历史记录中,POST 不会
- GET 请求只能进行 url 编码,POST 请求支持很多种(文件、表单)