锁屏面试题百日百刷-http必问

锁屏面试题百日百刷,每个工作日坚持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cc/#/introductionPage。已收录了每日更新的面试题的所有内容,还包含特色的解锁屏幕复习面试题、每日编程题目邮件推送等功能。让你在面试中先人一步,吊打面试官!接下来的是今日的面试题:

====什么是http协议?

http(Hyper Text Transfer Protocol)协议是对客户端和服务器端之间数据之间实现可靠性的传输文字、图片、音频、视频等超文本数据的规范,格式简称为“超文本传输协议”

http协议属于应用层。

====http请求的请求报文和响应报文的格式?(重点)

1)http请求报文:一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成

①请求行:请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

②请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

User-Agent:产生请求的浏览器类型。

Accept:客户端可识别的内容类型列表。

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

③空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

④请求数据:请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头是Content-Type和Content-Length

  1. http响应报文:HTTP响应由三个部分组成,分别是:状态行、消息报头、响应正文。

①状态行:由协议类型及版本号、状态码、状态码的文字描述组成它们之间用空格分隔,如:HTTP/1.1 200 OK

②消息报头:与请求头部格式一致

③响应正文:响应返回的主要信息内容

====http和https的区别?

其实HTTPS就是从HTTP加上加密处理(一般是SSL安全通信线路)+认证+完整性保护

区别:

1. https需要拿到ca证书

2. 端口不一样,http是80,https443

3. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

4. http和https使用的是完全不同的连接方式(http的连接很简单,是无状态的;HTTPS 协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。)

====HTTPS工作原理?

一、首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验;

二、客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数使用公钥进行加密(RSA加密);

三、消息体产生的后,对它的摘要进行MD5(或者SHA1)算法加密,此时就得到了RSA签名;

四、发送给服务端,此时只有服务端(RSA私钥)能解密。

五、解密得到的随机数,再用AES加密,作为密钥(此时的密钥只有客户端和服务端知道)。

====一次完整的HTTP请求所经历几个步骤?

1. 建立TCP连接

怎么建立连接的,看上面的三次捂手

2. Web浏览器向Web服务器发送请求行

一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET /sample/hello.jsp HTTP/1.1。

3. Web浏览器发送请求头

浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

4. Web服务器应答

客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本号和应答状态码。

5. Web服务器发送应答头

正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

6. Web服务器向浏览器发送数据

 Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

  1. Web服务器关闭TCP连接

====常用HTTP状态码是怎么分类的,有哪些常见的状态码?(重点)

类别:

1xx: 指示信息–表示请求已接收,正在处理

2xx: 成功–表示请求已被成功接收、理解、接受

3xx: 重定向–要完成请求必须进行更进一步的操作

4xx: 客户端错误–请求有语法错误或请求无法实现

5xx: 服务器端错误–服务器未能实现合法的请求

常见状态码:

200: 请求被正常处理

204: 请求被受理但没有资源可以返回

206: 客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应

报文中通过Content-Range指定范围的资源。

301: 永久性重定向

302: 临时重定向

303: 与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET

方法重定向到另一个URI上

304: 发送附带条件的请求时,条件不满足时返回,与重定向无关

307: 临时重定向,与302类似,只是强制要求使用POST方法

400: 请求报文语法有误,服务器无法识别

401: 请求需要认证

403: 请求的对应资源禁止被访问

404: 服务器无法找到对应资源

500: 服务器内部错误

503: 服务器正忙

====Http协议中有那些请求方式?

GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传

参给服务器

POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST

方式。

PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。

HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI

是否有效。

PATCH: 客户端向服务器传送的数据取代指定的文档的内容(部分取代)

TRACE: 回显客户端请求服务器的原始请求报文,用于"回环"诊断

DELETE: 删除文件,与PUT方法相反,删除对应URI位置的文件。

OPTIONS: 查询相应URI支持的HTTP方法。

====GET方法与POST方法的区别?

区别一: get重点在从服务器上获取资源,post重点在向服务器发送数据;

区别二: Get传输的数据量小,因为受URL长度限制,但效率较高; Post可以传输大量数据,所以上传文件时只能用Post方式;

区别三: get是不安全的,因为get请求发送数据是在URL上,是可见的,可能会泄露私密信息,如密码等; post是放在请求数据中的,是安全的

====http版本的对比?

HTTP1.0版本的特性:

==早先1.0的HTTP版本,是一种无状态、无连接的应用层协议。

==HTTP1.0规定浏览器和服务器保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态)。

HTTP1.1版本新特性

==默认持久连接节省通信量,只要客户端服务端任意一端没有明确提出断开TCP连接,就一直保持连接,可以发送多次HTTP请求

==管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应

==断点续传原理

HTTP2.0版本的特性

==二进制分帧(采用二进制格式的编码将其封装)

==首部压缩(设置了专门的首部压缩设计的HPACK算法。)

==流量控制(设置了接收某个数据流的多少字节一些流量控制)

==多路复用(可以在共享TCP链接的基础上同时发送请求和响应)

==请求优先级(可以通过优化这些帧的交错和传输顺序进一步优化性能)

==服务器推送(就是服务器可以对一个客户端请求发送多个响应。服务器向客户端推送资源无需客户端明确的请求。(重大更新))

====什么是cookie和session?

cookie是由Web服务器保存在用户浏览器上的文件(key-value格式),可以包含用户相关的信息。客户端向服务器发起请求,就提取浏览器中的用户信息由http发送给服务器。

session 是浏览器和服务器会话过程中,服务器会分配的一块储存空间给session。

服务器默认为客户浏览器的cookie中设置 sessionid,这个sessionid就和cookie对应,浏览器在向服务器请求过程中传输的cookie 包含 sessionid ,服务器根据传输cookie 中的 sessionid 获取出会话中存储的信息,然后确定会话的身份信息。

====cookie与session区别?

1. cookie数据存放在客户端上,安全性较差,session数据放在服务器上,安全性相对更高

2. 单个cookie保存的数据不能超过4K,session无此限制 信息后,使用自己的私钥进行解密。 由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,非常的慢

更多面试题或学习资源可查看我主页或评论获取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值