前端八股文(网络篇)一

目录

1.Get和Post的请求的区别

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

3.常见的HTTP请求方法

4.HTTP与HTTPS协议的区别

5.对keep-alive的理解

6.页面有多张图片,HTTP是怎样的加载表现?

7.HTTP请求报文是什么样的?

8.HTTP响应报文是什么样?

9.HTTP协议的优点和缺点

10.URL有哪些组成部分


1.Get和Post的请求的区别

Post和Get是HTTP请求的两种方法,其区别如下:

  • 应用场景:GET请求是一个幂等的请求,一般Get请求用于对服务器资源不会产生影响的场景,比如说请求一个网页的资源。而Post不是一个幂等的请求,一般用于对服务器资源产生影响的情景,比如注册用户这一类的操作。
  • 是否缓存:因为两者应用场景不同,浏览器一般会对Get请求缓存,但很少对Post请求缓存。
  • 发送的报文格式:Get请求的报文中实体部分为空,Post请求的报文中实体部分一般为向服务器发送的数据
  • 安全性:Get请求可以将请求的参数放入url中向服务器发送,这样的做法相对于Post请求来说是不太安全的,因为请求的url会被保留在历史记录中
  • 请求长度:浏览器由于对url长度的限制,所以会影响get请求发送数据时的长度。这个限制的浏览器规定的,并不是RFC规定的
  • 参数类型:post的参数传递支持更多的数据类型、

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

HTTP Request Header常见的请求头:

  • Accept:浏览器能够处理的内容类型
  • Accept-Charset:浏览器能够显示的字符集
  • Accept-Encoding:浏览器能够处理的压缩编码
  • Accept-Language:浏览器当前设置的语言
  • Connection:浏览器与服务器之间连接的类型
  • Cookie:当前页面设置的任何Cookie
  • Host:发出请求的页面所在域
  • Referer:发出请求的页面的URL
  • User-Agent:浏览器的用户代理字符串

HTTP Response Header常见的响应头:

  • Date:表示消息发送的时间,时间的描述格式由rfc822定义
  • server:服务器名称
  • Connection:浏览器与服务器之间连接的类型
  • 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 格式的数据。


3.常见的HTTP请求方法

  • GET:向服务器获取数据
  • POST:将实体提交到指定的资源,通常会造成服务器资源的修改
  • PUT:上传文件,更新数据
  • DELETE:删除服务器上的对象
  • HEAD:获取报文首部,与GET相比,不返回报文主体部分
  • OPTIONS:询问支持的请求方法,用来跨域请求
  • CONNECT:要求与代理服务器通信时建立隧道,使用隧道进行TCP通信
  • TRACE:回显服务器收到的请求,主要用于测试或诊断。

4.HTTP与HTTPS协议的区别

HTTP和HTTPS协议的主要区别如下:

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

5.对keep-alive的理解

HTTP1.0中默认是在每次请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接

,完成之后立即断开连接,这就是短连接。当使用keep-alive模式时,keep-alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,keep-alive功能避免了建立或者重新建立连接,这就是长连接。其使用方法如下:

  • HTTP1.0版本是默认没有Keep-alive的(也就是默认会发送keep-alive),所以要想连接得到保持,必须手动配置发送Connection: keep-alive字段。若想断开keep-alive连接,需发送Connection:close字段;
  • HTTP1.1规定了默认保持长连接,数据传输完成了保持TCP连接不断开,等待在同域名下继续用这个通道传输数据。如果需要关闭,需要客户端发送Connection:close首部字段。

keep-alive建立的过程:

  • 客户端向服务器在发送请求报文同时在首部添加发送Connection字段
  • 服务器收到请求并处理Connection字段
  • 服务器回送Connection:Keep-Alive字段给客户端
  • 客户端接收到Connection字段
  • Keep-Alive连接建立成功

服务器自动断开过程(也就是没有keep-alive):

  • 客户端向服务器只是发送内容报文(不含Connection字段)
  • 服务器收到请求并处理
  • 服务器返回客户端请求的资源并关闭连接
  • 客户端接收到资源,发现没有Connection字段,断开连接

客户端请求断开连接过程:

  • 客户端向服务器发送Connection:close字段
  • 服务器收到请求并处理Connection字段
  • 服务器回送响应资源并断开连接
  • 客户端接收资源并断开连接

开启Keep-Alive的优点:

  • 较少的CPU和内存的使用(由于同时打开的连接的减少了)
  • 允许请求和应答的HTTP管线化
  • 降低拥塞控制(TCP连接减少)
  • 减少了后续请求的延迟(无需再进行握手)
  • 报告错误无需TCP连接

开启Keep-Alive的缺点:

长时间的TCP连接容易导致系统资源无效占用,浪费系统资源。


6.页面有多张图片,HTTP是怎样的加载表现?

  • 在HTTP 1下,浏览器对一个域名下最大TCP连接数为6,所以会请求多次。可以用多域名部署来解决。这样可以提高同时请求的数目,加快页面图片的获取速度。
  • 在HTTP 2下,可以一瞬间加载出来很多资源,因为HTTP2支持多路复用,可以在一个TCP连接中发送多个HTTP请求。

7.HTTP请求报文是什么样的?

请求报文有4部分组成:

  • 请求行
  • 请求头部
  • 空行
  • 请求体

其中:

(1)请求行包括:请求方法字段,URL字段,HTTP协议版本字段。它们用空格分割。例如:GET/index.html HTTP/1.1。

(2)请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分割

  • User-Agent:产生请求的浏览器类型
  • Accept:客户端可识别的内容类型列表
  • Host:请求的主机名,允许多个域名同一个IP地址,即虚拟主机。

(3)请求体:post,put等请求携带的数据


8.HTTP响应报文是什么样?

响应报文有4部分组成:

  • 响应行
  • 响应头
  • 空行
  • 响应体

  • 响应行:由网络协议版本,状态码和状态码的原因短语组成,例如:HTTP/1.1 200 OK
  • 响应头:响应头部由响应首部组成
  • 响应体:服务器响应的数据

9.HTTP协议的优点和缺点

HTTP是超文本传输协议,它定义了客户端和服务器之间交换报文的格式和方式,默认使用80端口。它使用TCP作为传输层协议,保证了数据传输的可靠性。

HTTP协议具有以下优点:

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

HTTP协议的缺点:

  • 无状态: HTTP 是一个无状态的协议,HTTP 服务器不会保存关于客户的任何信息。
  • 明文传输: 协议中的报文使用的是文本形式,这就直接暴露给外界,不安全。
  • 不安全

(1)通信使用明文(不加密),内容可能会被窃听; (2)不验证通信方的身份,因此有可能遭遇伪装; (3)无法证明报文的完整性,所以有可能已遭篡改;


10.URL有哪些组成部分

以下面的URL为例:www.aspxfans.com:8080/news/index.…

从上面的URL可以看出,一个完整的URL包括以下几部分:

  • 协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符;
  • 域名部分:该URL的域名部分为“www.aspxfans.com” 一个URL中,也可以使用IP地址作为域名使用
  • 端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口(HTTP协议默认端口是80,HTTPS协议默认端口是443);
  • 虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”;
  • 文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名;
  • 锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

  • 参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。


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

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

相关文章

为什么大型服务器要用 Linux 系统?

为什么大型服务器要用 Linux 系统? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&#xff…

STM32 ESP8266 物联网智能温室大棚 (附源码 PCB 原理图 设计文档)

资料下载: https://download.csdn.net/download/vvoennvv/88680924 一、概述 本系统以STM32F103C8T6单片机为主控芯片,采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集,MQ-7一氧化碳传感器检测CO浓度,GP2Y101…

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-1 坐标系与概念基准

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…

Python进阶之元类

Python进阶之元类 目录 什么是元类? 元类的调用流程 根据类自定义元类 __new__方法以及参数 ----------cls ----------name ----------bases ----------attrs __call__方法 生成对象的完整代码 什么是元类? 在python面向对象中,我们知道所有…

使用串口 DMA 模式接收不定长数据

一、简介 曾经遇到客户有一个需求,需要用串口 DMA 的方式接收不定长度的数据,DMA 有个缺点就是在每次传输前需要设定好传输的字节长度,这种方式显然对于接收不定长度的数据来说没有那么灵活。但 DMA 也有着显著的优点,如可直接访…

网络安全—部署CA证书服务器

文章目录 网络拓扑安装步骤安装证书系统安装从属证书服务器 申请与颁发申请证书CA颁发证书 使用windows Server 2003环境 网络拓扑 两台服务器在同一网段即可,即能够互相ping通。 安装步骤 安装证书系统 首先我们对计算机名进行确认,安装了证书系统后我…

(vue)el-cascader级联选择器实现单/多选最后一级并回显

(vue)el-cascader实现多选最后一级并回显 <el-form-item label"选择算法模型&#xff1a;"><el-cascaderv-model"formInline.algorithmId":options"modelOptions":props"{ value: id, label: name, multiple: true, emitPath: fal…

002集filter()函数及lambda()函数应用实例—python基础入门实例

1.filter()函数的基本语法如下&#xff1a; filter ( function , iterable ) 其中&#xff0c;function是一个用于判断的函数&#xff0c;iterable是一个可迭代对象&#xff0c;可以是列表、元组、集合或字符串等。filter()会将iterable中的每个元素依次传给function进行判…

python编程使用selenium模拟登陆淘宝实例代码

selenium简介 selenium 是一个web的自动化测试工具&#xff0c;不少学习功能自动化的同学开始首选selenium &#xff0c;相因为它相比QTP有诸多有点&#xff1a; * 免费&#xff0c;也不用再为破解QTP而大伤脑筋* 小巧&#xff0c;对于不同的语言它只是一个包而已&#xff0c…

【win11 绕过TPM CPU硬件限制安装】

Qt编程指南 VX&#xff1a;hao541022348 ■ 下载iso文件■ 右键文件点击装载出现如下问题■ 绕过TPM CPU硬件限制安装方法■ 虚拟机安装win11 ■ 下载iso文件 选择Windows11 &#xff08;multi-edition ISO&#xff09;在选择中文 ■ 右键文件点击装载出现如下问题 ■ 绕过T…

LINE网页版使用方法(内含LINE网页版特点总结)

如果想要在电脑上使用LINE&#xff0c;但是又觉得下载客户端很累赘的话&#xff0c;LINE网页版是你最好的选择。但是LINE网页版相对于其他平台来说使用方式比较少。所以今天就来讲讲&#xff0c;我们有什么方式可以在电脑中使用LINE。 LINE网页版使用方法 1.需要使用Chrome浏览…

作业--day42

界面设计 MyProWin::MyProWin(QWidget *parent): QMainWindow(parent) {/**********窗口主体**********///窗口大小this->setFixedSize(644, 493);this->setWindowTitle("QQ");this->setWindowIcon(QIcon("C:/Users/10988/Downloads/pictrue/pictrue/…

java编程中,保证接口幂等性的实现方案讨论

一、什么是幂等性 数学中的幂等是指f(x) f(f(x))&#xff0c;编程领域的术语是指同一个操作&#xff0c;在重复提交的情况下&#xff0c;最终产生的影响是不变的。举例说&#xff1a; 提交订单时&#xff0c;用户在购物车界面&#xff0c;重复点击“下单”&#xff0c;服务端…

摆动排序 II

题目链接 摆动排序 II 题目描述 注意点 将数组重新排列成 nums[0] < nums[1] > nums[2] < nums[3]… 的顺序题目数据保证&#xff0c;对于给定的输入 nums &#xff0c;总能产生满足题目要求的结果用 O(n) 时间复杂度和 / 或原地 O(1) 额外空间来实现 解答思路 如…

学习笔记16——操作系统

学习笔记系列开头惯例发布一些寻亲消息&#xff0c;感谢关注&#xff01; 链接&#xff1a;https://www.mca.gov.cn/lljz/indexdetail.html?idd0afa7f6f36946319a206d61937f9b63&type0&t10.11199120579373845 八股——操作系统一些基础知识整理 一个java程序对应一个…

FDA食品接触材料测试项目接触

1. FDA介绍&#xff1a; 美国食品和药品管理局&#xff08;FDA&#xff09;负责监管食品接触材料&#xff0c;此类材料必须经过检测&#xff0c;确保达到食品接触安全标准。美国联邦法规&#xff08;CFR&#xff09;第21章对此类材料作出具体规定&#xff0c;并将此类材料视…

MATLAB读取图片并转换为二进制数据格式

文章目录 前言一、MATLAB 文件读取方法1、文本文件读取2、二进制文件读取3、 图像文件读取4、其他文件读取 二、常用的图像处理标准图片链接三、MATLAB读取图片并转换为二进制数据格式1、matlab 源码2、运行结果 前言 本文记录使用 MATLAB 读取图片并转换为二进制数据格式的方…

Selenium 学习(0.17)——软件测试之流程图绘制方法

病假5天&#xff0c;出去野20天&#xff0c;成功错过了慕课网上的期末考试。 害&#xff0c;都怪玩乐太开心了…… 反正咱又不指着全靠这个行当来吃饭&#xff0c;错过也就错过了&#xff0c;立的Flag能抢救一下还是要抢救一下吧。【这个其实早都会画了&#xff0c;而且基本也正…

软件测试|Linux三剑客之sed命令详解

简介 sed&#xff08;Stream Editor&#xff09;是一款流式文本编辑器&#xff0c;在 Linux 和类 Unix 系统中广泛使用。它的设计目的是用于对文本进行处理和转换&#xff0c;可以用于替换、删除、插入、打印等操作。sed 命令通过逐行处理文本&#xff0c;允许您使用简单的命令…

.mkp勒索病毒数据怎么处理|数据解密恢复

导言&#xff1a; 在数字时代&#xff0c;勒索病毒如[datastorecyberfear.com].mkp [hendersoncock.li].mkp [myersairmail.cc].mkp正成为企业和个人的噩梦。本文将介绍[datastorecyberfear.com].mkp [hendersoncock.li].mkp [myersairmail.cc].mkp勒索病毒的特点、如何恢复被…