前端面试-计算机网络

news/2024/7/27 8:01:18/文章来源:https://blog.csdn.net/m0_54221848/article/details/136623443

文章目录

  • 一、HTTP协议
    • 1. GET和POST的请求的区别
    • 2. POST和PUT请求的区别
    • 3. 常见的HTTP请求头和响应头
    • 4. HTTP状态码304
    • 5. HTTP和HTTPS协议的区别
    • 6. 当在浏览器中输入 Google.com 并且按下回车之后发生了什么?
    • 7. HTTP协议的优点和缺点
    • 8. 与缓存相关的HTTP请求头有哪些
  • 二、HTTPS协议
    • 1. TLS/SSL的工作原理
    • 2. HTTPS通信(握手)过程
  • 三、HTTP状态码
  • 四、网络模型

一、HTTP协议

1. GET和POST的请求的区别

  • 发送的报文格式:Get 请求的报文中实体部分为空,Post 请求的报文中实体部分一般为向服务器发送的数据。
  • 安全性:Get 请求可以将请求的参数放入 url 中向服务器发送,这样的做法相对于 Post 请求来说是不太安全的,因为请求的 url 会被保留在历史记录中。
  • 请求长度:浏览器由于对 url 长度的限制,所以会影响 get 请求发送数据时的长度。这个限制是浏览器规定的
  • 是否缓存:因为两者应用场景不同,浏览器一般会对 Get 请求缓存,但很少对 Post 请求缓存。

2. POST和PUT请求的区别

  • PUT请求是向服务器端发送数据,从而修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。(可以理解为是更新数据)
  • POST请求是向服务器端发送数据,该请求会改变数据的种类等资源,它会创建新的内容。(可以理解为是创建数据)

3. 常见的HTTP请求头和响应头

常见的请求头:

  • Accept:浏览器能够处理的内容类型
  • Accept-Charset:浏览器能够显示的字符集
  • Cookie:当前页面设置的任何Cookie
  • Host:发出请求的页面所在的域
  • Referer:发出请求的页面的URL

常见的响应头:

  • Cache-Control:控制HTTP缓存
  • content-type:表示后面的文档属于什么MIME类型
    常见的 Content-Type 属性值有以下四种:
    (1)application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。种方式提交的数据放在 body 里面,数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL转码。
    (2)multipart/form-data:该种方式也是一个常见的 POST 提交方式,通常表单上传文件时使用该种方式。
    (3)application/json:服务器消息主体是序列化后的 JSON 字符串。
    (4)text/xml:该种方式主要用来提交 XML 格式的数据。

4. HTTP状态码304

服务器为了提高网站访问速度,对之前访问的部分页面指定缓存机制,当客户端在此对这些页面进行请求,服务器会根据缓存内容判断页面与之前是否相同,若相同便直接返回304,此时客户端调用缓存内容,不必进行二次下载。

304状态码出现过多会造成以下问题:

  • 网站快照停止;
  • 收录减少;
  • 权重下降

5. HTTP和HTTPS协议的区别

  • HTTPS协议需要CA证书,费用较高;而HTTP协议不需要;
  • HTTP协议是超文本传输协议,信息是明文传输的,HTTPS则是具有安全性的SSL加密传输协议;
  • 使用不同的连接方式,端口也不同,HTTP协议端口是80,HTTPS协议端口是443;
  • HTTP协议连接很简单,是无状态的;HTTPS协议是有SSL和HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP更加安全。

6. 当在浏览器中输入 Google.com 并且按下回车之后发生了什么?

1、解析URL:
2、缓存判断
3、DNS解析:要获取的是输入的 URL 中的域名的 IP 地址,首先会判断本地是否有该域名的 IP 地址的缓存,如果有则使用,如果没有则向本地 DNS 服务器发起请求。本地 DNS 服务器也会先检查是否存在缓存,如果没有就会先向根域名服务器发起请求。
4、获取MAC地址:数据传输还需要知道目的主机 MAC 地址
5、TCP三次握手:首先客户端向服务器发送一个 SYN 连接请求报文段和一个随机序号,服务端接收到请求后向客户端发送一个 SYN ACK报文段,确认连接请求,并且也向客户端发送一个随机序号。客户端接收服务器的确认应答后,进入连接建立的状态,同时向服务器也发送一个ACK 确认报文段,服务器端接收到确认后,也进入连接建立状态,此时双方的连接就建立起来了。
6、HTTPS握手
7、返回数据
8、页面渲染
9、TCP四次挥手

7. HTTP协议的优点和缺点

HTTP协议具有以下优点:

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
  • 无连接:无连接就是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。
  • 无状态:HTTP协议是无状态协议,这里的状态是指通信过程的上下文信息。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能会导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快。
  • 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。

HTTP协议具有以下缺点:
明文传输:协议中的报文使用的是文本形式,这就直接暴露给外界,不安全。

8. 与缓存相关的HTTP请求头有哪些

强缓存:

  • Expires
  • Cache-Control

协商缓存:

  • Etag、If-None-Match
  • Last-Modified、If-Modified-Since

二、HTTPS协议

1. TLS/SSL的工作原理

TLS/SSL全称安全传输层协议(Transport Layer Security), 功能实现主要依赖三类基本算法:散列函数hash、对称加密、非对称加密。这三类算法的作用如下:

  • 基于散列函数验证信息的完整性
  • 对称加密算法采用协商的秘钥对数据加密
  • 非对称加密实现身份认证和秘钥协商

2. HTTPS通信(握手)过程

  • 客户端向服务器发起请求,请求中包含使用的协议版本号、生成的一个随机数、以及客户端支持的加密方法。
  • 服务器端接收到请求后,确认双方使用的加密方法、并给出服务器的证书、以及一个服务器生成的随机数。
  • 客户端确认服务器证书有效后,生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,然后发给服 务器。并且还会提供一个前面所有内容的hash 的值,用来供服务器检验。
  • 服务器使用自己的私钥,来解密客户端发送过来的随机数。并提供前面所有内容的 hash 值来供客户端检验。
  • 客户端和服务器端根据约定的加密方法使用前面的三个随机数,生成对话秘钥,以后的对话过程都使用这个秘钥来加密信息。

三、HTTP状态码

  • 301: 永久重定向,当我们想换个域名,旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名。其实也是告诉搜索引擎收录的域名需要对新的域名进行收录。
  • 302:未登陆的用户访问用户中心重定向到登录页面。
  • 403: 该状态码表明请求资源的访问被服务器拒绝了,服务器端没有必要给出详细理由,但是可以在响应报文实体的主体中进行说明。

四、网络模型

OSI七层模型:

  • 应用层:常见应用层的网络服务协议有:HTTP,HTTPS,FTP,SMTP等
  • 表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
  • 会话层:会话层就是负责建立、管理和终止表示层实体之间的通信会话。
  • 传输层:传输层建立了主机端到端的链接,TCP UDP就是在这一层
  • 网络层
  • 数据链路层
  • 物理层

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1006773.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年华为HCIA-DATACOM新增题库(H12-811)

801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案:A 试题解析:在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…

西井科技参与IATA全球货运大会 以AI绿动能引领智慧空港新未来

3月12日至14日,由国际航空运输协会IATA主办的全球货运大会(World Cargo Symposium)在中国香港成功举办,这是全球航空货运领域最大规模与影响力的年度盛会。作为大物流领域全球领先的“智能化与新能源化”综合解决方案提供商&#…

【数学建模】Topsis法python代码

昨天学习了Topsis法的基本概念,今天就来一起实践一下,用python实现topsis法 代码分块解释 1、引入numpy库 numpy as np 2、输入参评与指标数目 # 用户输入参评数目和指标数目,将输入的字符串转换为数值 print("请输入参评数目&#…

DHCP中继实验(思科)

华为设备参考:DHCP中继实验(华为) 一,技术简介 DHCP中继,可以实现在不同子网和物理网段之间处理和转发DHCP信息的功能。如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的IP…

QT开发(二) 构建QMainWindow

1、前言 QMainWindow是Qt框架中用于创建应用程序主窗口的类。它是许多GUI应用程序的基础,提供了丰富的功能和灵活性,以支持用户界面的创建和管理。 QMainWindow的结构主要包括以下几个部分: 菜单栏(Menu Bar)&#…

C++:vector类

vector的介绍及使用 1. vector 是表示可变大小数组的序列容器。 2. 就像数组一样, vector 也采用的连续存储空间来存储元素。也就是意味着可以采用下标对 vector 的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的…

金山办公内推

作为金山办公刚刚校招等待入职的一员,我诚挚地邀请您加入我的内推计划,与我一起共同打造卓越的工作环境和未来。 我能帮你 (与直接填我的内推码不同,我直接通过内部问卷帮你投) 1,直接通过校招群里的连接…

【精选】代码Ai生成,

https://developer.aliyun.com/topic/lingma/activities/202403?taskCode14508&recordIda559ee76fb387118328a69b0cc4cd090#/?utm_contentm_fission_1 「通义灵码 体验 AI 编码,开 AI 盲盒」,通义灵码 搞活动,注册可以抽盲盒&#xf…

中国城市统计年鉴、中国县域统计年鉴、中国财政统计年鉴、中国税务统计年鉴、中国科技统计年鉴、中国卫生统计年鉴​

统计年鉴是指以统计图表和分析说明为主,通过高度密集的统计数据来全面、系统、连续地记录年度经济、社会等各方面发展情况的大型工具书来获取统计数据资料。 统计年鉴是进行各项经济、社会研究的必要前提。而借助于统计年鉴,则是研究者常用的途径。目前国…

【linux深入剖析】操作系统与用户之间的接口:自定义简易shell制作全过程

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1.shell2.自定义shell的准…

DDD领域模型驱动

传统MVC架构 DDD架构: api层:api请求方式,透传【传递参数】,几个业务对应api 业务层:做编排,业务里要有哪些服务,执行顺序是什么,以及怎么做 领域层:负责领域内调用&a…

21、设计模式之备忘录模式(Memento)

一、什么是备忘录模式 备忘录模式又称快照模式,是一种行为型设计模式。它可以在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态,以便在需要的时候恢复到原先保存的状态。 二、角色组成 源发器(Originator…

ubuntu上通过apt-get 安装指定版本的ecal

在ubuntu上想通过apt get直接安装ecal不自己编译源码安装的话, ecal官网给出的安装指令是 2. Installing eCAL — Eclipse eCAL™ sudo add-apt-repository ppa:ecal/ecal-latest sudo apt-get update sudo apt-get install ecal 要指定版本的时候 按照提示&…

基于log4cpp封装日志类

一、log4cpp的使用 1. 下载log4cpp log4cpp官方下载地址 2. 安装log4cpp 第一步:解压 tar zxvf log4cpp-1.1.4.tar.gz 第二步:进入log4cpp文件夹并执行 ./configure tips:如果是ARM架构的芯片可能会失败,如下面这种情况&…

Shell常用脚本:文件或目录一键同步到多台服务器

注意: 将本地文件,同步到【/opt/module/script/xsyncByFileIp.txt】里面的目标机器 xsyncByFile.sh #!/bin/bash# 入参参数个数 argsCount$#if(($argsCount0)); thenecho "同步失败:请输入待同步的文件或者目录" exit; fiecho &q…

如何从笔记本电脑恢复已删除的照片

人们相信照片是回忆一生中最难忘事件的最佳媒介。人们在计算机上收集超过 5 GB 的照片是很常见的。然而,在笔记本电脑上保存照片并不安全,因为您可能会因以下原因有意或无意地删除笔记本电脑上的照片: 您的笔记本电脑存储空间几乎已满。您必…

精英荟萃,共话未来 | GAS 2024完整议程揭晓!

GAS 2024即将启幕! 精彩议程,立即揭晓! *最终大会议程以现场公告为准 后续将陆续揭秘更多大会议程、嘉宾名单! 请持续关注! 2024中国国际音频产业大会(GAS) 点击链接:https://appkTQS9RSU4386.h5.xiaoek…

PFA容量瓶volumetric flask应用研究分析

容量瓶是一个透明的长颈瓶,瓶体为梨形,便于摇荡液体和刷洗。每一个PFA容量瓶上的刻度线都是用千分之一的电子天平称量、标注,PFA容量瓶以其优异的耐化学腐蚀性和热稳定性,在实验室器皿中占有重要地位。随着科学技术的不断发展&…

【牛客】VL68 同步FIFO

描述 请设计带有空满信号的同步FIFO,FIFO的深度和宽度可配置。双口RAM的参考代码和接口信号已给出,请在答案中添加并例化此部分代码。 电路的接口如下图所示。端口说明如下表。 接口电路图如下: 双口RAM端口说明: 端口名I/O描述…

StarCoder 2:GitHub Copilot本地开源LLM替代方案

GitHub CoPilot拥有超过130万付费用户,部署在5万多个组织中,是世界上部署最广泛的人工智能开发工具。使用LLM进行编程辅助工作不仅提高了生产力,而且正在永久性地改变数字原住民开发软件的方式,我也是它的付费用户之一。 低代码/…