首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
just_to_do
广州大学华软软件学院 前端工程师
关注
已关注
取消关注
涨知识啦~~~
@阿珊和她的猫:
前端面试必备 | 计算机网络篇(P1-16)
文章目录 什么是HTTP?它的工作原理是什么?它的请求和响应内容是什么? HTTP和HTTPS有什么区别?如何实现HTTPS? 解释一下HTTP请求方法GET和POST的区别。 什么是Cookie?它在计算机网络中的作用是什么? 什么是Session?如何在前端实现基于Session的身份验证? 对称加密和非对称加密是什么,如何使用? 什么是TCP/IP协议?它在计算机网络中的作用是什么? 解释一下DNS是什么,它的作用是什么? 什么是RESTful API?它与传统的API有什么不同? 说一下OSI七层模型? TCP和UDP的区别是什么? 解释一下浏览器缓存,它的优点和使用场景是什么? 什么是CDN?它在前端性能优化中的作用是什么? 说下TCP三次握手,四次挥手? 浏览器输入网址后执行的过程? 说说你对计算机网络模型的理解 1. 什么是HTTP?它的工作原理是什么?它的请求和响应内容是什么? HTTP是超文本传输协议(Hypertext Transfer Protocol)的缩写,它是一种用于在Web上发送和接收超文本(如HTML)的应用层协议。 HTTP的工作原理是基于客户端-服务器模型。一般情况下,客户端是指用户使用的浏览器,服务器则是存储网站内容的远程主机。 下面是HTTP的基本工作流程: 客户端发起HTTP请求:浏览器向服务器发送HTTP请求,包括请求的资源路径、请求方法(如GET、POST等)和其他可选的请求头字段(如Cookie、User-Agent等)。 服务器处理请求:服务器接收到客户端请求后,根据请求的资源路径和方法进行处理,执行相应的逻辑操作。 服务器返回HTTP响应:服务器生成HTTP响应,包括响应状态码(如200表示成功,404表示资源未找到等),响应头字段(如Content-Type、Content-Length等)和响应体(即请求的资源内容)。 客户端处理响应:浏览器接收到服务器的HTTP响应后,根据响应内容进行相应的处理,如解析HTML、渲染页面等。 HTTP请求的内容包括请求行、请求头和请求体。 请求行包含请求方法、URL路径和HTTP协议版本。 请求头包含附加的信息,如请求的Host、User-Agent、Cookie等。 请求体则是一些需要在请求中携带的数据,例如在POST请求中传递的表单数据。 HTTP响应的内容包括响应行、响应头和响应体。响应行包含HTTP协议版本、响应状态码和相应的状态信息。响应头包含一些附加的信息,如响应的Content-Type、Content-Length等。响应体则是服务器返回的实际内容,如HTML文档、图片、视频等。 通过HTTP,客户端和服务器可以进行通信并交换超文本内容,实现了Web中的数据传输和交互。 2. HTTP和HTTPS有什么区别?如何实现HTTPS? HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在客户端和服务器之间传输数据的协议,它们有以下区别: 安全性:HTTP是明文传输协议,数据传输过程中不加密,因此存在安全风险。HTTPS通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议进行加密通信,确保数据在传输过程中的机密性和完整性,提供更高的安全性。 端口号:HTTP使用默认端口80进行通信,而HTTPS使用默认端口443。 证书验证:为了建立HTTPS连接,服务器需要使用SSL/TLS证书来验证其身份。客户端会验证该证书的有效性和可信度,确保与正确的服务器进行通信。这增加了对服务器身份的认证。 实现HTTPS的步骤如下: 生成和获取证书:需要通过证书颁发机构(CA)购买或获取SSL/TLS证书。证书中包含公钥和相关信息。你可以自己生成自签名证书进行测试,但浏览器会警告访问者证书不受信任。 配置服务器:服务器需要安装证书,并配置相应的加密套件和密码算法,在配置中指定使用HTTPS的端口号(通常是443)。 开启HTTPS:在服务器的配置文件中启用HTTPS协议(如Apache的配置文件httpd.conf或Nginx的配置文件nginx.conf),设置SSL/TLS证书的路径和配置参数。 重启服务器:在完成配置后,需要重启服务器以使更改生效。 实现HTTPS过程还涉及到数字证书的管理和维护,包括证书的更新和续期。此外,为了提供更高的安全性,可以配置HTTP到HTTPS的跳转,并实施其他安全措施,如HSTS(HTTP Strict Transport Security)。 请注意,HTTPS的实现可能略有不同,具体取决于你使用的服务器软件和配置方式。根据不同的服务提供商、服务器类型或工具,可以参考相关文档或指南来获取更详细的配置信息和步骤。 3. 解释一下HTTP请求方法GET和POST的区别。 HTTP请求方法GET和POST是两种常见的请求方法,它们在使用方式和作用上有一些区别。 GET请求: GET方法用于从服务器获取资源,通常用于请求获取页面、图片、文档等内容。 GET请求的参数会附加在URL的查询字符串中,并以键值对的形式传递,例如:http://example.com/resource?key1=value1&key2=value2。 GET请求具有幂等性,即多次发送相同的GET请求,不应对服务器产生副作用,只是获取相同的响应。 GET请求参数的长度有限制,不适合传递大量数据。 POST请求: POST方法用于向服务器提交数据,通常用于提交表单、上传文件等操作。 POST请求的参数会包含在请求体中,并以键值对的形式传递。参数不会直接暴露在URL中,因此相对于GET方法更安全。 POST请求可以传递大量数据,没有像GET方法的参数长度限制。 POST请求不具有幂等性,即多次发送相同的POST请求,可能对服务器产生副作用,例如重复提交订单。 总结: GET方法用于获取资源,参数附加在URL中,通常用于无副作用的读取操作。 POST方法用于提交数据,参数包含在请求体中,通常用于有副作用的写入操作。 GET方法适合获取少量数据,POST方法适合传递大量数据。 GET请求可以被缓存和收藏,POST请求一般不会被缓存。 需要根据具体的场景和需求选择适合的请求方法。 4. 什么是Cookie?它在计算机网络中的作用是什么? Cookie是计算机网络中的一种机制,用于在客户端和服务器之间存储和交换信息。它是由服务器发送给客户端的小型文本文件,在客户端的浏览器中存储,并在每次客户端向服务器发送请求时通过HTTP头部信息传递给服务器。 Cookie在计算机网络中的主要作用如下: 会话管理:Cookie常用于跟踪用户会话。当用户通过浏览器与服务器进行交互时,服务器可以创建一个唯一的标识符(称为会话ID)并将其存储在Cookie中。随后,浏览器在后续的请求中将Cookie自动包含在HTTP头部中,使服务器能够识别用户并维护与其关联的会话状态,如登录状态、购物车内容等。 状态保持:Cookie可以在客户端存储一些状态信息,在不同请求之间传递,以维持状态。例如,网站可以使用Cookie来记录用户的偏好设置或对用户进行个性化处理。 跟踪和分析:通过将唯一标识符(如用户ID)存储在Cookie中,服务器可以追踪和分析用户的行为和访问模式。这对于统计分析和广告跟踪等方面是有用的。 广告定向:许多广告平台使用Cookie来跟踪用户的兴趣和行为,并根据这些信息向用户推送相关的广告内容。 需要注意的是,Cookie是存储在客户端的文本文件,因此可以被篡改和删除。为了保护用户隐私和提高安全性,Web应用程序和浏览器都提供了对Cookie的一些控制和限制机制,如设置Cookie的有效期限、限制Cookie的访问范围、启用Secure标记来仅在HTTPS连接中传输Cookie等。 5. 什么是Session?如何在前端实现基于Session的身份验证? 在计算机网络中,Session(会话)是指客户端和服务器之间的一段交互时间。 它开始于客户端向服务器发送请求,并一直持续到服务器响应完成。 Session通常用于维护特定用户在一段时间内的状态和信息。 在前端实现基于Session的身份验证,通常的步骤如下: 登录验证:用户通过提供用户名和密码进行登录。前端将用户输入的凭据发送到服务器,服务器进行验证,如果验证通过,则生成一个唯一的会话标识符(Session ID)。 存储Session ID:服务器将生成的Session ID返回给前端,前端通常会将Session ID保存在Cookie中或使用其他方式存储,以便在后续的请求中发送给服务器。另外,还可以将Session ID存储在本地存储(如localStorage)或会话存储(如sessionStorage)中。 身份验证:在后续的请求中,前端需要将Session ID包含在每个请求中,通常通过将其作为Cookie的值发送。服务器接收到请求后,会通过验证Session ID来识别用户,并判断用户是否已经通过登录验证。 会话管理:服务器通过Session ID来获取与该用户关联的会话数据。会话数据可以存储在服务器的内存中、数据库中或缓存中,用于存储用户状态、权限信息等。服务器可以根据Session ID进行相关操作,如更新会话状态、获取用户信息等。 需要注意以下几点: 服务器端实现:在实现基于Session的身份验证时,还需要服务器端的支持。服务器需要在接收到请求时,解析Cookie中的Session ID,并对其进行验证和处理。 安全性考虑:为了增加安全性,建议使用HTTPS来传输Session ID,防止中间人攻击和信息篡改。此外,还需要适当设置Session的过期时间,并定期更新Session ID。 注销:为了注销Session和退出登录,需要在服务器端删除或失效Session数据,并在前端清除存储的Session ID。 安全漏洞:基于Session的身份验证需要处理一些常见的安全漏洞,如会话劫持和会话固定攻击。服务器端应采取适当的安全防护措施,如生成强大的Session ID、使用随机数种子、控制Cookie的安全标志等。 综上所述,基于Session的身份验证在前端通常涉及用户登录、Session ID的存储和传输,以及在后续请求中验证和管理会话数据。服务器端负责验证Session ID并提供相应的会话管理功能。 6. 对称加密和非对称加密是什么,如何使用? 对称加密和非对称加密是常见的加密算法,用于确保数据在传输或存储过程中的安全性。 对称加密: 对称加密使用相同的密钥(称为秘密密钥)进行加密和解密。 加密和解密的过程都使用同一个密钥,因此速度较快。 常见的对称加密算法有DES、AES等。 使用对称加密时,发送方和接收方需要事先共享同一个密钥。 非对称加密: 非对称加密使用一对密钥,分别称为公钥和私钥。 公钥用于加密数据,私钥用于解密数据。 使用公钥加密的数据只能通过对应的私钥进行解密。 常见的非对称加密算法有RSA、ECC等。 使用非对称加密时,发送方发布其公钥给接收方,接收方使用公钥加密数据后发送给发送方,发送方再使用私钥解密数据。 使用对称加密和非对称加密的一般步骤: 对称加密: 选择适当的对称加密算法和密钥长度。 生成密钥并共享给通信双方。 发送方使用共享的密钥对数据进行加密。 接收方使用共享的密钥对数据进行解密。 非对称加密: 接收方生成一对公钥和私钥。 发送方获取接收方的公钥。 发送方使用接收方的公钥对数据进行加密。 接收方使用私钥对数据进行解密。 对称加密适用于传输速度要求高、密钥共享方便的场景;而非对称加密适用于传输安全性要求高、密钥共享困难的场景。通常的做法是,使用非对称加密来安全地传输对称加密中所使用的密钥,以确保传输过程的安全性。 7. 什么是TCP/IP协议?它在计算机网络中的作用是什么? TCP/IP(Transmission Control Protocol/Internet Protocol)是一组网络通信协议,用于在计算机网络上进行可靠的数据传输和通信。它是互联网的基础协议套件,支持网络间的数据传输和互联网上的通信。 TCP/IP协议由两个主要协议组成: TCP(Transmission Control Protocol):TCP提供可靠的、面向连接的数据传输。它的主要功能是分割和重组数据,确认数据的完整性和可靠性,以及处理数据包在网络上的顺序。TCP通过建立连接、数据分段、错误检测和重传等机制,确保数据在源和目标之间可靠地传输。TCP适用于需要可靠性和顺序交付的应用,如网页浏览、文件传输和电子邮件等。 IP(Internet Protocol):IP是计算机网络中的主要协议,负责在网络上定位和传输数据包。它定义了数据包的格式、寻址方案和路由选择。IP协议的主要功能是将数据包从源主机路由到目标主机,实现网络的互联和跨网络通信。IP协议是无连接的,每个数据包独立处理,因此它的传输不保证数据包的可靠性、顺序和时延。 TCP/IP协议在计算机网络中扮演着重要的角色,具有以下作用: 路由和数据传输:TCP/IP协议套件提供了路由和数据传输功能,使得数据包能够在不同的网络和主机之间进行传输。它支持将数据包从源地址路由到目标地址,并确保数据的可靠性和顺序。 IP地址和寻址:TCP/IP使用IP地址作为网络中主机的唯一标识符。IP地址用于标识主机的位置和网络归属,使得数据包能够准确路由到目标主机。IP地址还支持分级的寻址方式,提供了灵活的网络划分和子网管理能力。 互联网标准:TCP/IP是互联网的基础协议套件,定义了互联网的基本通信协议和数据格式。它为互联网上的各种应用提供了统一的通信标准,使得不同计算机和操作系统之间能够进行交互和通信。
点赞 8
评论 2
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-29 21:10
蚌埠坦克学院 嵌入式软件开发
第一家实习的公司是个小公司
我的第一家实习公司,是一家小公司。不是什么大厂,也没有光鲜的名头,但有一点我记得很清楚:每天准时下班。没有加班文化,也没人盯着工时。该干的活认真干,时间一到就走。那段时间我第一次意识到,工作也可以是正常的生活节奏。回头看,它可能没给我最硬的履历,但给了我一个很重要的参照——原来工作不一定非得透支自己。作为第一份实习,这样就挺好了。
你的第一家实习公司是什么...
点赞
评论
收藏
分享
02-02 16:19
河南大学 C++
记忆翻牌挑战 - 帮助牛客娘(用AI制作小游戏)
牛客 "网页小游戏 AI coding" 活动主要玩法:开局给出若干对相同牛客娘图片,并展示3秒,随后翻面,在规定时间内找出所有相同的牛客娘就胜利了!!!游戏界面:游戏规则:开局展示所有图片3秒,每次翻2张方格,图片相同则永久显示,不同则1.2秒后翻回,限时匹配所有图片即为通关。制作过程:首先,简单描述一下需求:接着,对所给的代码进行测试,进一步完善达到心理预期后,对游戏进行测试,寻找bug!!!!最后,进一步完善功能,并对结构进行优化制作视频链接:https://www.bilibili.com/video/BV19B6uBUEqW/?spm_id_from=333.33...
牛客AI体验站
点赞
评论
收藏
分享
01-01 10:15
深圳大学 Java
字节 财经 一面
字节一面当时思路对了,算法多写了两行回溯,以为肯定没了,没想到第二天约面了,一面的内容基本都答上来了
点赞
评论
收藏
分享
02-03 09:01
蚌埠坦克学院 嵌入式软件开发
安克创新 嵌入式 一面
1. 先做个简单的自我介绍吧参考答案: 您好,我是XXX,本科/研究生毕业于XX大学XX专业。在校期间主修嵌入式系统、操作系统、计算机组成原理等课程。 我有X年的嵌入式开发经验,熟悉ARM Cortex-M/A系列架构,掌握C/C++编程和常用通信协议。 在项目经验方面,我做过基于FreeRTOS的智能设备开发,负责驱动开发和系统优化,实现了多任务调度和低功耗管理。也参与过Linux平台的应用开发,熟悉内核裁剪和驱动移植。 技术栈方面,我熟悉RTOS和Linux双平台开发,掌握I2C/SPI/UART/CAN等通信协议,有MCU和MPU的开发经验。 我对安克创新的智能充电和音频产品很感兴趣,希...
嵌入式面试八股文全集
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
AI 应用开发学习全景路线图
1.5W
2
...
双非大三生在家20小时写了个Agent开源项目
5498
3
...
大厂到底想要什么样的人???
5376
4
...
害怕被嘲笑就不去做了吗?
5134
5
...
字节国际化广告后端一面
3957
6
...
字节的offer流程需要多久
3698
7
...
小红书前端一面
2335
8
...
字节日常实习二面
2211
9
...
阿里社招一面
2082
10
...
字节财经业务一面凉经
1854
创作者周榜
更多
正在热议
更多
#
在大厂上班是一种什么样的体验
#
6378次浏览
84人参与
#
机械人避雷的岗位/公司
#
41697次浏览
275人参与
#
程序员找工作至少要刷多少题?
#
11914次浏览
188人参与
#
过年最难忘的一件事
#
23033次浏览
174人参与
#
我现在比当时_,你想录用我吗
#
5160次浏览
79人参与
#
12306一秒售罄,你抢到回家的票了吗?
#
1037次浏览
35人参与
#
为了减少AI幻觉,你注入过哪些设定?
#
2438次浏览
90人参与
#
牛客AI体验站
#
4417次浏览
131人参与
#
AI Coding的使用心得
#
3293次浏览
89人参与
#
找工作的破防时刻
#
252902次浏览
1960人参与
#
刚入职的你踩过哪些坑
#
5140次浏览
108人参与
#
一张图晒一下你的AI员工
#
3531次浏览
81人参与
#
你最满意的offer薪资是哪家公司?
#
69437次浏览
349人参与
#
论秋招对个人心气的改变
#
6877次浏览
118人参与
#
关于春招/暑期实习,你想知道哪些信息?
#
5120次浏览
90人参与
#
黄金这个事上,你学到了什么
#
1188次浏览
35人参与
#
机械人你知道哪些单休企业
#
85308次浏览
428人参与
#
程序员能干到多少岁?
#
6568次浏览
99人参与
#
晒晒你司的新年福利
#
5157次浏览
80人参与
#
拿到offer之后,可以做些什么
#
87585次浏览
449人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务