面试题-Java Web-网络通信
1.HTTP响应的结构是怎么样的?
HTTP响应由三个部分组成:
状态码(Status Code):描述了响应的状态。可以用来检查是否成功的完成了请求。请求失败的情况下,状态码可用来找出失败的原因。如果Servlet没有返回状态码,默认会返回成功的状态码HttpServletResponse.SC_OK。
HTTP头部(HTTP Header):它们包含了更多关于响应的信息。比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的传输实体内容的编码格式。如何在Serlet中检索HTTP的头部看这里。
主体(Body):它包含了响应的内容。它可以包含HTML代码,图片,等等。主体是由传输在HTTP消息中紧跟在头部后面的数据字节组成的。
2.什么是cookie?session和cookie有什么区别?
cookie是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个Web服务器存储cookie。以后浏览器在给特定的Web服务器发请求的时候,同时会发送所有为该服务器存储的cookie。下面列出了session和cookie的区别:
无论客户端浏览器做怎么样的设置,session都应该能正常工作。客户端可以选择禁用cookie,但是,session仍然是能够工作的,因为客户端无法禁用服务端的session。
在存储的数据量方面session和cookies也是不一样的。session能够存储任意的Java对象,cookie只能存储String类型的对象。
3.浏览器和Servlet通信使用的是什么协议?
浏览器和Servlet通信使用的是HTTP协议。
4.什么是HTTP隧道?
HTTP隧道是一种利用HTTP或者是HTTPS把多种网络协议封装起来进行通信的技术。因此,HTTP协议扮演了一个打通用于通信的网络协议的管道的包装器的角色。把其他协议的请求掩盖成HTTP的请求就是HTTP隧道。
5.sendRedirect()和forward()方法有什么区别?
sendRedirect()方法会创建一个新的请求,而forward()方法只是把请求转发到一个新的目标上。重定向(redirect)以后,之前请求作用域范围以内的对象就失效了,因为会产生一个新的请求,而转发(forwarding)以后,之前请求作用域范围以内的对象还是能访问的。一般认为sendRedirect()比forward()要慢。
6.什么是URL编码和URL解码?
URL编码是负责把URL里面的空格和其他的特殊字符替换成对应的十六进制表示,反之就是解码。
相关文章
- java安装1.8和1.7,报错:Error: Registry key 'SoftwareJavaSoftJava Runtime Environment'CurrentVers
- Java 泛型
- 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制
- [LeetCode][Java] Binary Tree Level Order Traversal
- 什么是 Java 内存模型?
- Arrays.sort.Collections.sort 排序出现的java.lang.IllegalArgumentException的异常
- Java Reflection(八):注解
- 15个顶级Java多线程面试题及回答
- JAVA基础--Java枚举+位操作,巧妙判断是否设置
- 2020最新整理JAVA面试题附答案
- 肝了!一篇文章搞定1000道大厂Java面试题
- Java面试集合(三)-30道面试题
- java.io.BufferedInputStream 源码分析
- Java软件开发好学吗?学完好找工作吗?
- Java基础语法:1.第一个java程序
- Java Opencv 实现锐化
- 面试题 | Java源文件中可以有多个类,为什么只能有一个public类?
- 普通Java Web项目为什么lib包要放在WEB-INF下
- 2023年java初级面试题10道基础试水题
- JAVA学习.java.sql.date 与java.util.date以及gettime()方法的分析
- Java语言面向对象三大核心特性之【多态】
- Java开发框架Play框架快速入门
- Java集合框架和数组的排序
- Java小白入门200例65之Java sort()数组排序
- JDK与Java SE/EE/ME的区别
- Java Charset
- Java集合:浅谈LinkedList