当前位置: 首页 > news >正文

招聘网站开发背景公司网站开发部署

招聘网站开发背景,公司网站开发部署,大学生创新创业大赛,div使用太多影响网站收录文章目录 HTTP长连接和短连接HTTP/1.1 与 HTTP/1.0 的区别可扩展性缓存带宽优化长连接消息传递Host 头域错误提示 AjaxAjax 的优势#xff1a; JSP 和 servlet 有什么区别#xff1f;定义区别 JSP 的9大内置对象及作用JSP 的 4 种作用域#xff1f;session 和 cookie 有什么… 文章目录 HTTP长连接和短连接HTTP/1.1 与 HTTP/1.0 的区别可扩展性缓存带宽优化长连接消息传递Host 头域错误提示 AjaxAjax 的优势 JSP 和 servlet 有什么区别定义区别 JSP 的9大内置对象及作用JSP 的 4 种作用域session 和 cookie 有什么区别定义区别Cookie的使用session的使用 session 的工作原理浏览器关闭session就销毁了如果客户端禁止 cookie那么 session 还能用吗spring mvc 和 struts 的区别是什么过滤器与拦截器的区别如何避免 SQL 注入什么是 XSS 攻击如何避免什么是 CSRF 攻击如何避免防御手段 Java Web是用Java技术来解决相关web互联网领域的技术栈。今天我们来总结一下经常在面试中遇到的经典面试题。 HTTP长连接和短连接 HTTP 协议有 HTTP/1.0 版本和 HTTP/1.1 版本。 HTTP1.1 默认保持长连接HTTP persistent connection也翻译为持久连接数据传输完成了保持 TCP 连接不断开不发 RST 包、不四次握手等待在同域 名下继续用这个通道传输数据相反的就是短连接。 在 HTTP/1.0 中默认使用的是短连接。也就是说浏览器和服务器每进行一次 HTTP 操作就建立一 次连接任务结束就中断连接。 从 HTTP/1.1 起默认使用的是长连接 用以保持连接特性。 HTTP/1.1 与 HTTP/1.0 的区别 可扩展性 a) HTTP/1.1 在消息中增加版本号用于兼容性判断。 b) HTTP/1.1 增加了 OPTIONS 方法它允许客户端获取一个服务器支持的方法列表。 c) 为了与未来的协议规范兼容 HTTP/1.1 在请求消息中包含了 Upgrade 头域通过该头域客户端 可以让服务器知道它能够支持的其它备用通信协议服务器可以据此进行协议切换使用备用协议与客 户端进行通信。 缓存 在 HTTP/1.0 中使用 Expire 头域来判断资源的 fresh 或 stale并使用条件请求conditional request来判断资源是否仍有效。 HTTP/1.1 在 1.0 的基础上加入了一些 cache 的新特性当缓存对 象的 Age 超过 Expire 时变stale 对象 cache 不需要直接抛弃 stale 对象而是与源服务器进行重新激 活revalidation。 带宽优化 HTTP/1.0 中存在一些浪费带宽的现象例如客户端只是需要某个对象的一部分而服务器却将整个 对象送过来了。例如客户端只需要显示一个文档的部分内容又比如下载大文件时需要支持断点续传功能而不 是在发生断连后不得不重新下载完整的包。 HTTP/1.1 中在请求消息中引入了 range 头域它允许只请求资源的某个部分。在响应消息中 Content-Range 头域声明了返回的这部分对象的偏移值和长度。如果服务器相应地返回了对象所请求范围的内容则响应 码为 206Partial Content它可以防止 Cache 将响应误以为是完整的一个对象。 另外一种情况是请求消息中如果包含比较大的实体内容但不确定服务器是否能够接收该请求如是否 有权限此时若贸然发出带实体的请求如果被拒绝也会浪费带宽。 HTTP/1.1 加入了一个新的状态码 100Continue。客户端事先发送一个只带头域的请求如果服务 器因为权限拒绝了请求就回送响应码 401Unauthorized如果服务器接收此请求就回送响应码 100客 户端就可以继续发送带实体的完整请求了。注意 HTTP/1.0 的客户端不支持 100 响应码。但可以让客户端在请求消息 中加入 Expect头域并将它的值设置为 100-continue。 节省带宽资源的一个非常有效的做法就是压缩要传送的数据。 Content-Encoding 是对消息进行端到端 end-toend的编码它可能是资源在服务器上保存的固有格式如 jpeg 图片格式在请求消息 中加入 Accept-Encoding头域它可以告诉服务器客户端能够解码的编码方式。 长连接 HTTP/1.0 规定浏览器与服务器只保持短暂的连接浏览器的每次请求都需要与服务器建立一个 TCP 连 接服务器完成请求处理后立即断开 TCP 连接服务器不跟踪每个客户也不记录过去的请求。此外由于大多数 网页的流量都比较小一次 TCP 连接很少能通过 slow-start 区不利于提高带宽利用率。 HTTP 1.1 支持长连接PersistentConnection和请求的流水线Pipelining处理在一个 TCP 连接 上可以传送多个 HTTP 请求和响应减少了建立和关闭连接的消耗和延迟。例如一个包含有许多图像的网页文 件的多个请求和应答可以在一个连接中传输但每个单独的网页文件的请求和应答仍然需要使用各自的 连接。 HTTP 1.1 还允许客户端不用等待上一次请求结果返回就可以发出下一次请求但服务器端必须按照 接收到客户端请求的先后顺序依次回送响应结果以保证客户端能够区分出每次请求的响应内容这样也显著地减 少了整个下载过程所需要的时间 消息传递 HTTP 消息中可以包含任意长度的实体通常它们使用 Content-Length 来给出消息结束标志。但是 对于很多动态产生的响应只能通过缓冲完整的消息来判断消息的大小但这样做会加大延迟。如果不使用长连 接还可以通过连接关闭的信号来判定一个消息的结束。 HTTP/1.1 中引入了 Chunkedtransfer-coding 来解决上面这个问题发送方将消息分割成若干个任意大 小的数据块每个数据块在发送时都会附上块的长度最后用一个零长度的块作为消息结束的标志。这 种方法允许发送方只缓冲消息的一个片段避免缓冲整个消息带来的过载。 在 HTTP/1.0 中有一个 Content-MD5 的头域要计算这个头域需要发送方缓冲完整个消息后才能进 行。而HTTP/1.1 中采用 chunked 分块传递的消息在最后一个块零长度结束之后会再传递一个拖尾 trailer它包含一个或多个头域这些头域是发送方在传递完所有块之后再计算出值的。发送方会 在消息中包含一个 Trailer 头域告诉接收方这个拖尾的存在。 Host 头域 在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址因此请求消息中的URL并没有传递主机名hostname。 但随着虚拟主机技术的发展在一台物理服务器上可以存在多个虚拟主机Multi-homed Web Servers并且它们共享一个 IP 地址。 HTTP1.1 的请求消息和响应消息都应支持 Host 头域且请求消息中如果没有 Host 头域会报告一个错 误400Bad Request。此外服务器应该接受以绝对路径标记的资源请求。 错误提示 HTTP/1.0 中只定义了 16 个状态响应码对错误或警告的提示不够具体。 HTTP/1.1 引入了一个 Warning 头域增加对错误或警告信息的描述。 此外在 HTTP/1.1 中新增了 24 个状态响应码如 409Conflict表示请求的资源与资源的当前状态 发生冲突410Gone表示服务器上的某个资源被永久性的删除。 Ajax Ajax 是一种创建交互式网页应用的的网页开发技术 Asynchronous JavaScript and XML”的缩写。 Ajax 的优势 通过异步模式提升了用户体验。优化了浏览器和服务器之间的传输减少不必要的数据往返减少了带宽占用。Ajax 引擎在客户端运行承担了一部分本来由服务器承担的工作从而减少了大用户量下的服务器负 载。 Ajax 的最大特点可以实现局部刷新在不更新整个页面的前提下维护数据提升用户体验度。 注意ajax在实际项目开发中使用率非常高牢固掌握针对ajax的详细描述 JSP 和 servlet 有什么区别 定义 servlet 是运行在服务器端的 java 小程序是sun公司提供的一套接口用来处理客户端请求响应给浏览器的动态资源。实质是java 代码通过 java 的API动态的向客户端输出内容。 JSP 是一种动态网页开发技术。JSP 文件就是在传统的 HTML 文件中插入 Java 代码和 JSP 标签后缀名为.jsp。 区别 JSP 是 servlet 技术的扩展。本质上就是 servlet 的简易方式。servlet 的应用逻辑是在 java 文件中并且完全从表示层中的 HTML 里分离出来而 JSP 的情况是 Java 和 HTML 可以组合成一个扩展名为JSP 文件。JSP 侧重于视图而 servlet 主要用于控制逻辑。 JSP 的9大内置对象及作用 jsp 被翻译成 servlet 之后service方法中有9个对象定义并初始化完毕我们在 jsp 脚本中可以直接使用这9个对象。 out用于页面输出输出服务器响应的输出流对象。out.write()out 缓冲区默认8kb可以设置成0代表关闭out缓冲区内容直接写到 response 缓冲器request封装客户端的请求其中包含来自 get 或 post 请求的参数response封装服务器对客户端的响应信息config服务器配置可以取得初始化参数session封装用户会话的对象application封装服务器运行环境的对象pageJSP 页面本身相当于 Java 程序中的 thispageContextJSP的页面容器jsp页面的上下文对象exception封装页面抛出异常的对象。 JSP 的 4 种作用域 page域就是pageContext当前 jsp 页面范围内request域一次请求代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页 面涉及多个 Web 组件需要在页面显示的临时数据可以置于此作用域。session域一次会话代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相 关的数据应该放在用户自己的 session 中。application域整个web应用代表与整个 Web 应用程序相关的对象和属性它实质上是跨越整个 Web 应用程序包括多个页面、请求和会话的一个全局作用域。 session 和 cookie 有什么区别 定义 session是一种将会话状态保存在服务器端的技术。Cookie 是在 HTTP 协议下 Web 服务器保存在用户浏览器客户端上的小文本文件它可以包含有关用户的信息。无论何时用户链接到服务器Web 站点都可以访问Cookie 信息 。 区别 存储位置不同session 存储在服务器端cookie 存储在浏览器端。安全性不同cookie 安全性一般在浏览器存储可以被伪造和修改。容量和个数限制cookie 有容量限制每个站点下的 cookie 也有个数限制。存储的多样性session 可以存储在 Redis 中、数据库中、应用程序中而 cookie 只能存储在浏览器中。 Cookie的使用 服务器端向客户端发送一个Cookie Cookie cookie new Cookie(String cookieName,String cookieValue); cookie.setMaxAge(int seconds);//设置持久化时间如果不设置持久化时间cookie会存储在浏览器的内存中浏览器关闭 cookie信息销毁会话级别的cookie如果设置持久化时间cookie信息会被持久化到浏览器的磁盘文件里持久化cookie cookie.setPath(String path);//设置携带路径如果不设置携带路径那么该cookie信息会在访问产生该cookie的web资源所在的路径都携带cookie信息 response.addCookie(cookie);注意Cookie中不能存储中文 删除客户端的cookie如果想删除客户端的已经存储的cookie信息那么就使用同名同路径的持久化时间为0的cookie进行覆盖即可 服务器端怎么接受客户端携带的Cookie Cookie[] cookies request.getCookies(); for(Cookie cookie : cookies){if(cookie.getName().equal(cookieName)){ String cookieValue cookie.getValue(); } }session的使用 1.获取session 此方法会获得专属于当前会话的Session对象如果服务器端没有该会话的Session对象会创建一个新的Session返回如果已经有了属于该会话的Session直接将已有的Session返回实质就是根据 JSESSIONID 判断该客户端是否在服务器上已经存在session了 HttpSession session request.getSession();//会话级域对象2.操作 session.getId();//获取编号id session.setAttribute(String name,Object obj); session.getAttribute(String name); session.removeAttribute(String name);session 的工作原理 session 的工作原理是客户端登录完成之后服务器会创建对应的 sessionsession 创建完之后会把 session 的 id 发送给客户端客户端再存储到浏览器中。这样客户端每次访问服务器时都会带着 sessionid服务器拿到 sessionid 之后在内存找到与之对应的 session 这样就可以正常工作了。 浏览器关闭session就销毁了 先说一下 session 销毁的三种方式 服务器非正常关闭时session过期/失效默认30分钟手动销毁:session.invalidate(); 所以浏览器关闭session并不会被销毁与浏览器没有任何关系。 如果客户端禁止 cookie那么 session 还能用吗 可以用session 只是依赖 cookie 存储 sessionid如果 cookie 被禁用了可以使用 url 中添加 sessionid 的方式保证 session 能正常使用。 spring mvc 和 struts 的区别是什么 拦截级别struts2 是类级别的拦截spring mvc 是方法级别的拦截。数据独立性spring mvc 的方法之间基本上独立的独享 request 和 response 数据请求数据通过参数获取处理结果通过 ModelMap 交回给框架方法之间不共享变量而 struts2 虽然方法之间也是独立的但其所有 action 变量是共享的这不会影响 程序运行却给我们编码和读程序时带来了一定的麻烦。拦截机制struts2 有以自己的 interceptor 机制spring mvc 用的是独立的 aop 方式这样导致 struts2 的配置文件量比 spring mvc 大。对 ajax 的支持spring mvc 集成了 ajax所有 ajax 使用很方便只需要一个注解 ResponseBody 就可以实现了而 struts2 一般需要安装插件或者自己写代码才行。 过滤器与拦截器的区别 拦截器和过滤器其实都是AOP编程思想的实现,只不过过滤器是基于函数回调的拦截器则是基于Java的反射机制动态代理实现的都可以体现例如权限的检查日志的记录等功能过滤器实现的是javax.servlet.Filter接口而这个接口是在Servlet规范中定义的也就是说过滤器Filter 的使用要依赖于Tomcat 等容器导致它只能在web程序中使用。拦截器(Interceptor)它是一个Spring组件并由Spring容器管理并不依赖Tomcat等容器是可以单独使用的。不仅能应用在web程序中也可以用于Application、Swing等程序中过滤器Filter执行了两次拦截器Interceptor只执行了一次 如何避免 SQL 注入 可以使用 PreparedStatement 来实现参数化查询使用正则表达式过滤掉字符中的特殊字符使用ORM框架将对象模型和关系数据库之间进行映射 什么是 XSS 攻击如何避免 XSS 攻击即跨站脚本攻击它是 Web 程序中常见的漏洞。原理是攻击者往 Web 页面里插入恶意的脚本代码css 代码、Javascript 代码等当用户浏览该页面时嵌入其中的脚本代码会被执行从而达到恶意攻击用户的目的如盗取用户 cookie、破坏页面结构、重定向到其他网站等。 预防 XSS 的核心是必须对输入的数据做过滤处理。 什么是 CSRF 攻击如何避免 CSRFCross-Site Request Forgery中文跨站请求伪造可以理解为攻击者盗用了你的身份以你的名义发送恶意请求比如以你名义发送邮件、发消息、购买商品虚拟货币转账等。 防御手段 验证请求来源地址关键操作添加验证码在请求地址添加 token 并验证
http://www.laogonggong.com/news/103346.html

相关文章:

  • weex做的网站长春建设平台网站的公司哪家好
  • 征婚网站开发网站开发的功能需求怎么写
  • 如何 html5 网站模板最近国际重大新闻
  • 做百度快照要先有网站吗wordpress主题 个人博客
  • 济南网站定制策划站长工具国产
  • 南阳网站开发公司做网站容易还是做小程序容易
  • 网站建设的审批部门是wordpress怎样进入后台
  • 合同下载 公司网站网络营销的基本方式有哪些
  • 一个网站只有一个核心关键词建设网站用凡科怎么样
  • 网站访客qq统计系统如何查看网站点击量
  • 做网站赚钱什么类型wordpress文件上传大小
  • 怎样用网站做淘宝客app开发公司哪家好求推荐
  • 大理做网站展架立式落地式
  • 在哪可以建一个网站怎么制作干花
  • 广东双语网站建设价格wordpress上传源代码
  • php网站建设培训龙岩网红打卡地
  • 做淘宝要用的网站吗厦门企业制作网站方案
  • 批量 网站标题网站怎么运营推广
  • 城乡建设门户网站个人做电商网站icp
  • 家居网站建设基本流程开发一款手机app软件需要多少钱
  • 用户体验 网站 外国网站分析表
  • 深圳筑造建设有限公司网站wordpress 导购
  • 聊城手机网站建设系统长春建筑工程网
  • 辛集做网站公司那些网站是做生鲜的
  • 一般网站栏目结构做网站窗体属性栏设置文字居中
  • 织梦网站后台模版更换在线免费视频网站推广
  • 专门做照片的网站景乔网站建设
  • 龙华网站建设网站定制东莞建设网站流程
  • 网站建设流程 文档园林景观设计公司管理制度及流程
  • 北京城建一建设发展有限公司网站挂机宝可以做网站吗