计算机网络面试题/HTTP
创始人
2024-06-02 18:01:30
0

HTTP 协议

HTTP协议叫超文本传输协议,是一种应用层协议。可以传输文字,图片,音频和视频等数据,

  • TCP:HTTP协议基于TCP协议,工作与C/S架构。
  • 数据:HTTP允许传输任意类型的数据
  • 请求响应:每次连接只能处理一个请求,客户端收到应答后,断开连接
  • 无状态:两次连接请求是相互独立的

HTTP 1.0/1.1/2.0/3.0

协议名称说明
HTTP1.01个TCP,1次请求-响应
HTTP1.11个TCP,有限个请求
HTTP2.01个TCP,多路复用(帧)
HTTP3.0移动设备,多路复用,安全

HTTP 1.0

  • 仅支持非持久连接,每次请求都需要建立新的TCP连接

HTTP1.1

  • 支持持久连接,在1个TCP连接上可以进行多次HTTP请求响应
  • 同步-非流水线:客户端请求后必须等待响应才能进行下1次请求
  • 异步-流水线:客户端请求后不用等待响应就能进行下1次请求

HTTP2.0
多路复用:

  • 使用1个HTTP2.0连接发送多路请求/响应消息
  • HTTP2.0将信息单位缩小为帧,并行双向在1个连接上交流(多路复用)
  • HTTP1.1同时对同1域名请求的数量有限制,这也是CDN出现的原因。

HTTP3.0
HTTP2.0问题:

  • 多路复用:有序字节流导致的对头阻塞,影响了HTTP2.0的多路复用
  • TLS:TLS增加了握手延迟,建立TCP连接的时长还可降低1倍
  • 无线环境下高速移动设备:基于TCP 4元组(源IP地址,源端口号,目的IP地址,目的端口号)标识TCP连接的方式适用于有线网络,不适用于无线网络,在无线网络环境下高速移动的设备(手机坐高铁),IP地址会频繁变动,引起TCP 4元组标识变化,导致TCP和TLS频繁重新连接

HTTP3.0解决:

  • 多路复用:HTTP3.0基于UDP重新定义连接,使用QUIC(Quick UDP Internet Connections)(Google)实现了无序、并发传输字节流,解决了队头阻塞问题
  • TLS:HTTP3.0重定义了TLS加密QUIC头部的方式。1 RTT完成连接建立与密钥协商
  • 无线环境下高速移动设备:分离Packet、QUIC Frame、HTTP3 Frame

HTTP POST/GET区别

简单的查询请求使用GET,增删改复杂查询可以使用POST

  • 速度:GET请求比POST请求快一些
  • 编码:GET只支持ASCII编码 包括中文,POST支持多种编码
  • 数据量:GET的URL编码有长度限制,POST可以发送更大数据量
  • 安全性:POST更安全,不会作为URL的一部分
  • 幂等性:GET,HEAD,PUT 和 DELETE 是幂等方法。POST不是
  • 读写:GET,HEAD,OPTIONS不会改变服务器状态。POST,PUT,PATCH,DELETE会
  • 缓存:GET,HEAD可缓存。POST一般可缓存。PUT,DELETE不可缓存
  • 异步:XMLHttpRequest在 AJAX 中被大量使用, XMLHttpRequest的POST的header和data是分开发送的。XMLHttpRequest的GET的header和data是一起发送的

HTTP GET的URL编码

URL编码为了区分分隔符

  • key1=value1&key2=value2
  • key和value的分隔符是=,ASCII码16进制 3D
  • entry和entry的分隔符是&,ASCII码16进制 26
  • value中含有分隔符,key=va&lu=e,URL编码,key=va%&lu%=e,在分隔符前加上%

HTTP 常用状态码及使用场景

分类作用
2xx请求成功
4xx客户端错误,请求报文错误
5xx服务端错误
1xx中间状态,需要后续请求
3xx重定向状态,需要重新请求
状态码作用
200请求成功
404资源未找到
403服务端禁止访问
400请求错误
500服务端错误
503服务端繁忙
101切换协议,HTTP到WebSocket
301永久重定向,会缓存
302临时重定向,不会缓存
304协商缓存命中

HTTP 301/302状态码的区别和用途

状态码作用
301永久重定向,会缓存
302临时重定向,不会缓存

301 Move Permanently

  • 多个域名指向同一资源,可以让n-1个域名永久重定义到1个域名,以累加网站在搜索引擎中的权重

302 Move Temporarily

  • 页面临时重定向,有网络劫持风险,会降低网站在搜索引擎中的权重,一般别使用

HTTP 长连接实现,超时

HTTP HTTPS

收费:HTTPs需要使用可信机构颁发的ssl证书,需要收费
效率:HTTPs多了一层ssl,效率相对低
安全:HTTP是明文传输,HTTPs是ssl加密传输
端口:HTTP是80端口,HTTPs是443端口

在这里插入图片描述

HTTP Keep-Alive 和 非Keep-Alive区别

HTTP 长连接短连接使用场景

HTTP Cookie 和 Session

相关内容

热门资讯

安卓原生系统流畅吗,流畅体验背... 亲爱的手机控们,你们有没有想过,为什么有些人宁愿放弃那些花里胡哨的定制系统,也要坚持使用那个看似简单...
状元郎平板安卓系统,引领平板教... 你有没有想过,一款平板电脑,竟然能让你在学习之余,还能畅游安卓世界的海洋?没错,今天我要跟你聊聊的就...
安卓系统数据到ios,系统数据... 你有没有想过,从安卓手机跳转到苹果手机,是不是就像从熟悉的老街巷走进了一个全新的童话世界呢?想象你的...
平板安卓系统如何启动,Laun... 亲爱的平板电脑,你今天怎么啦?是不是觉得安卓系统有点儿不给力,启动起来慢吞吞的,让人等得花儿都谢了?...
澎湃系统是安卓系统多少版本,引... 亲爱的读者们,你是否曾好奇过,小米的澎湃系统,这个听起来就充满科技感的名字,它到底是不是安卓系统呢?...
安卓系统mac电脑配置,打造安... 亲爱的电脑迷们,你是否曾想过,你的苹果笔记本里也能装上安卓系统?是的,你没听错!今天,就让我带你一起...
win手机系统升级安卓系统,系... 你有没有想过,你的Win手机系统突然间变得有点儿慢吞吞的,是不是也想给它来个焕然一新的升级呢?没错,...
tv安卓系统如何下载,探索TV... 你家的电视是不是也想来点新鲜玩意儿呢?比如,装上一些有趣的安卓应用,让电视也能玩玩游戏、看看直播,甚...
安卓手机系统美化教程,打造专属... 亲爱的手机控们,是不是觉得你的安卓手机界面有点单调,想要给它来个华丽变身呢?别急,今天就来手把手教你...
安卓手机好的系统,安卓手机操作... 你有没有发现,现在手机市场上的安卓手机真是琳琅满目,让人挑花了眼。不过,你知道吗?在这些安卓手机中,...
平板安卓系统密码忘,安卓平板电... 你是不是也有过这样的经历?手机里的平板安卓系统密码突然忘记了,心里那个急啊,就像热锅上的蚂蚁。别慌,...
安卓如何转换ios系统,探索系... 你有没有想过,把你的安卓手机变成苹果手机呢?想象那光滑的屏幕、流畅的系统,还有那独特的苹果风格,是不...
安卓下载系统安装网址,轻松获取... 你有没有想过,在电脑上也能畅玩安卓游戏,体验安卓应用呢?没错,这就是今天我要跟你分享的神奇之旅——如...
小7助手 安卓系统,智能生活新... 你知道吗?在手机助手的世界里,有一个小7助手,它可是安卓系统里的明星呢!今天,就让我带你一起来探索这...
安卓8 系统重装,轻松焕新手机... 手机用久了是不是感觉有点卡?别急,今天就来教你怎么给安卓8系统来个大变身,让它重焕新生! 一、重装前...
安卓系统照片怎么导向ios系统... 亲爱的手机控们,你是不是也和我一样,对换新手机这件事充满了期待?尤其是当你从安卓系统跳转到iOS系统...
ios对比安卓系统流畅,流畅体... 你有没有发现,用手机的时候,有时候iOS系统就像个优雅的舞者,而安卓系统则像个活力四射的少年?没错,...
安卓系统可以实现无纸化,安卓系... 你知道吗?现在科技的发展真是让人眼前一亮,尤其是安卓系统,它不仅能让你手机里的应用如虎添翼,还能让你...
安卓需要升级系统吗,体验科技新... 亲爱的手机控们,你们有没有想过,你的安卓手机是不是也需要来个“大变身”呢?没错,说的就是升级系统这件...
安卓系统显示到电脑,安卓系统电... 你有没有想过,你的安卓手机里的那些美图、短视频,竟然可以像变魔术一样,直接跳到电脑屏幕上?没错,就是...