Javaweb基础之http面试题(附答案)
2023-04-03 15:02:36
看到“http”每个人都必须熟悉这四个字母,因为http在搜索和浏览网页时是必不可少的。对于java程序员来说看到javaweb更不陌生,即使是java零基础的小白,对javaweb也有所了解。今天的文章将讨论它http面试题,http虽然没有javaweb那么频繁,但还是需要大家掌握的。
1、http 长连接和短连接是什么?
答:HTTP 协议有 HTTP/1.0 版本和 HTTP/1.1 版本。HTTP1.1 默认情况下保持长连接(HTTP persistent connection,数据传输也被翻译成持久连接) TCP 连接不断开,等待在同一域名下继续使用此通道传输数据;相反,它是短连接。
在HTTP/1.0 在中间,默认使用短连接。换句话说,浏览器和服务器每次操作HTTP时都会建立连接,任务结束时会中断连接。从HTTP/1.1 默认情况下,长连接用于保持连接特性。
2、HTTPHTTP/1.0 的区别?
答:可扩展性:可扩展性:(1)HTTP/1.1 将版本号添加到新闻中进行兼容性判断;(2)HTTP/1.1 增加了 OPTIONS 该方法允许客户端获得服务器支持的方法列表;(3)与未来协议规范兼容,HTTP/1.1 它包含在请求信息中 Upgrade 头域,通过头域,客户端可以让服务器知道它可以支持的其他备用通信协议,服务器可以相应地切换协议,并使用备用协议与客户端通信。
二缓存:在 HTTP/1.0 中,使用 Expire 判断资源的头域 fresh 或 stale,并利用条件要求来判断资源是否仍然有效。HTTP/1.1 在 1.0 在此基础上加入一些 cache 当缓存对象的Age超过Expiree时,新的特性 时变为stale 对象,cache 不需要直接抛弃stale对象,而是与源服务器重新激活。
三带宽优化。(1)HTTP/1.0 例如,客户端只需要某个对象的一部分,而服务器发送了整个对象。例如,客户端只需要显示文档的一部分,例如,在下载大文件时,需要支持断点续传功能,而不是在断开连接后重新下载完整的包。
(2)HTTP/1.1 range头域是在请求信息中引入的,允许只要求资源的一部分。在响应信息中,content-range头域声明了返回对象的偏移值和长度。如果服务器相应地返回对象要求的范围,则响应码为 206
(Partial Content),它可以防止Cache误认为响应是一个完整的对象。
四长连接。(1)HTTP/1.0规定浏览器和服务器只保持短连接。浏览器的每个请求都需要与服务器建立TCP连接。请求处理完成后,服务器立即断开 TCP 连接,服务器不跟踪每个客户,也不记录过去的请求。此外,由于大多数网页的流量相对较小,TCP连接很少通过slow-start区域,这不利于提高带宽利用率。
(2)HTTP 1.1 支持长连接(PersistentConnection)以及要求的流水线(Pipelining)处理,在TCP 多个HTTP请求和响应可以在连接上传输,减少了建立和关闭连接的消耗和延迟。例如,包含许多图像的网页文件的多个请求和响应可以在一个连接中传输,但每个单独的网页文件的请求和响应仍然需要使用自己的连接。
五个消息传递。(1)HTTP 任何长度的实体都可以包含在新闻中,通常使用 Content-Length 给出消息结束的标志。然而,对于许多动态响应,只能通过缓冲完整的消息来判断,但这会增加延迟。如果不使用长连接,也可以通过连接关闭信号来判断消息的结束。
(2)HTTP/1.1介绍了chunkedtransfer-coding来解决上述问题。发送人将消息分成任何大小的数据块,每个数据块在发送时附上块的长度,最后以零长度块作为消息结束的标志。该方法允许发送人只缓冲消息的一个片段,以避免缓冲整个消息带来的过载。
(3)在HTTP/1.0中,有一个Content-MD5头域,需要发送方缓冲整个消息才能计算头域。而HTTP/1.1 在最后一块(零长度)结束后,使用chunked分块传递的消息将传递另一个拖尾(trailer),它包含一个或多个头域,发送方在传递所有块后计算出值。发送方将在消息中包含一个trailer头域,告诉接收方拖尾的存在。
六Host 头域。(1)在HTTP1.0认为每个服务器都绑定了唯一的IP地址,所以请求消息中的URL没有传输主机名。然而,随着虚拟主机技术的发展,多个虚拟主机可以存在于物理服务器上,并且他们分享一个IP地址。
(2)HTTP1.1.请求信息和响应信息应支持Host头域,如果没有Host头域,请求信息将报告错误,此外,服务器应接受用绝对路径标记的资源要求。
七错误提示。(1)HTTP/1.0中只定义 16 状态响应码对错误或警告提示不够具体。HTTP/1.1引入Warning 增加对错误或警告信息的描述。(2)此外,在HTTP在/1.1中增加了24个状态响应码,如409(Conflict)要求的资源与资源的当前状态发生冲突;410(Gone)这意味着服务器上的资源被永久删除。
3、http 常见的状态码有哪些?
答:200 OK //客户端请求成功;
301 Moved Permanently(永久移除),请求 URL 已移走。Response 其中应包含一个 Location URL, 说明资源现在的位置;
302 found 重定向;
400 Bad Request //客户端请求语法错误,服务器无法理解;
403 Forbidden //服务器收到请求,但拒绝提供服务;
404 Not Found ///请求资源不存在,eg:输入错误 URL;
500 Internal Server Error ///服务器出现意想不到的错误;
503 Server Unavailable //服务器目前无法处理客户端的请求,一段时间后可能会恢复正常。
4、GET和POST有什么区别?
答:从表面现象上看:GET和POST的区别:(1)GET 要求的数据将附加在一起 URL之后(也就是说,将数据放置在 HTTP 协议头),以协议头),在参数之间划分URL和传输数据&相连,如:login.action?name=zhagnsan&password=123456。POST 将提交的数据放置在HTTP包的包体中。(2)GET提交的数据最多只能是1024字节,理论上POST没有限制,可以传输大量数据。事实上,这是错误的,不准确的:“GET 最多只能提交1024字节的数据",因为 GET 通过URL提交数据,GET提交的数据量与URL的长度直接相关。事实上,URL没有参数上限,HTTP协议规范也不正确 URL 限制长度。这种限制是特定浏览器和服务器的限制。IE对URL长度的限制是2083字节(2K+35)。(3)POST的安全性高于GET。注:这里提到的安全性及上述安全性 GET提到的“安全”不是同一个概念。上面“安全”它的意思只是没有数据修改,这里安全的意思是真正的Security的意思。
5、重定向和要求转发在http中有什么区别?
答:本质区别:转发是服务器行为,重定向是客户行为。
重定向特征:两个请求,浏览器地址发生变化,您可以访问自己 web 对于其他资源,传输的数据将丢失。
请求转发特点:一次强制,浏览器地址不变,访问自己 web 传输的数据不会丢失资源。
以上这5道题是整理的http面试题,虽然只有五个问题,但从这篇文章的长度可以看出,它包含了很多内容。我们仍然需要注意http面试问题的一部分,这样我们就不会在面试中感到困惑,并能够顺利通过java面试。