@@ -2079,13 +2079,13 @@ a{
20792079
20802080## 相关概念
20812081
2082- HTTP:Hyper Text Transfer Protocol,意为超文本传输协议,是建立在** TCP/IP协议 ** 基础上,指的是服务器和客户端之间交互必须遵循的一问一答的规则,形容这个规则:问答机制、握手机制
2082+ HTTP:Hyper Text Transfer Protocol,意为超文本传输协议,是建立在 ** TCP/IP 协议 ** 基础上,指的是服务器和客户端之间交互必须遵循的一问一答的规则,形容这个规则:问答机制、握手机制
20832083
2084- HTTP协议是 ** 一个无状态的面向连接的协议** ,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。所以打开一个服务器上的网页和上一次打开这个服务器上的网页之间没有任何联系
2084+ HTTP 协议是 ** 一个无状态的面向连接的协议** ,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。所以打开一个服务器上的网页和上一次打开这个服务器上的网页之间没有任何联系
20852085
2086- 注意:无状态并不是代表 HTTP 就是 UDP,面向连接也不是代表 HTTP 就 是TCP
2086+ 注意:无状态并不是代表 HTTP 就是 UDP,面向连接也不是代表 HTTP 就是TCP
20872087
2088- HTTP作用 :用于定义 WEB 浏览器与WEB服务器之间交换数据的过程和数据本身的内容
2088+ HTTP 作用 :用于定义 WEB 浏览器与 WEB 服务器之间交换数据的过程和数据本身的内容
20892089
20902090浏览器和服务器交互过程:浏览器请求,服务请求响应
20912091
@@ -2108,13 +2108,13 @@ URL 和 URI
21082108
21092109* 短连接:客户端和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。
21102110
2111- 使用短连接的情况下,当浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源(图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话
2111+ 使用短连接的情况下,当浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源(图像文件、CSS文件等),每遇到这样一个 Web 资源,浏览器就会经过三次握手重新建立一个 HTTP 会话
21122112
21132113* 长连接:使用长连接的 HTTP 协议,会在响应头加入这行代码 ` Connection:keep-alive `
21142114
21152115 使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输 HTTP 数据的 TCP 连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive 有一个保持时间,不会永久保持连接,设置以后可以实现长连接,前提是需要客户端和服务端都支持长连接
21162116
2117- * HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接
2117+ * HTTP 协议的长连接和短连接,实质上是 TCP 协议的长连接和短连接
21182118
21192119
21202120
@@ -2124,26 +2124,28 @@ URL 和 URI
21242124
21252125## 版本区别
21262126
2127- 面试问题:
2127+ 87691457
21282128
2129- * HTTP/0.9 仅支持GET请求,不支持请求头。
2130- * HTTP/1.0 默认短连接(一次请求建议一次TCP连接,请求完就断开),支持GET、POST、 HEAD请求
2131- * HTTP/1.1 默认长连接(一次TCP连接可以多次请求);支持PUT、DELETE、PATCH等六种请求;增加host头,支持虚拟主机;支持断点续传功能
2132- * HTTP/2.0 多路复用,降低开销(一次TCP连接可以处理多个请求);服务器主动推送(相关资源一个请求全部推送);解析基于二进制,解析错误少,更高效(HTTP/1.X解析基于文本);报头压缩,降低开销。
2129+ 版本介绍:
2130+
2131+ * HTTP/0.9 仅支持 GET 请求,不支持请求头。
2132+ * HTTP/1.0 默认短连接(一次请求建议一次 TCP 连接,请求完就断开),支持 GET、POST、 HEAD 请求
2133+ * HTTP/1.1 默认长连接(一次 TCP 连接可以多次请求);支持 PUT、DELETE、PATCH 等六种请求;增加 host 头,支持虚拟主机;支持断点续传功能
2134+ * HTTP/2.0 多路复用,降低开销(一次 TCP 连接可以处理多个请求);服务器主动推送(相关资源一个请求全部推送);解析基于二进制,解析错误少,更高效(HTTP/1.X 解析基于文本);报头压缩,降低开销。
21332135
21342136HTTP 1.0 和 HTTP 1.1 的主要区别:
21352137
21362138* 长短连接:
21372139
21382140 ** 在HTTP/1.0中,默认使用的是短连接** ,每次请求都要重新建立一次连接。HTTP 基于 TCP/IP 协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都要这样的话,开销会比较大。因此最好能维持一个长连接,可以用个长连接来发多个请求
21392141
2140- ** HTTP 1.1起,默认使用长连接** ,默认开启 ` Connection: keep-alive ` ,HTTP/1.1 的持续连接有非流水线方式和流水线方式 ,流水线方式是客户端在收到HTTP的响应报文之前就能接着发送新的请求报文 ,非流水线方式是客户端在收到前一个响应后才能发送下一个请求
2142+ ** HTTP 1.1起,默认使用长连接** ,默认开启 ` Connection: keep-alive ` ,HTTP/1.1 的持续连接有非流水线方式和流水线方式 ,流水线方式是客户端在收到 HTTP 的响应报文之前就能接着发送新的请求报文 ,非流水线方式是客户端在收到前一个响应后才能发送下一个请求
21412143
2142- * 错误状态响应码:在 HTTP1.1 中新增了 24 个错误状态响应码,如 409( Conflict) 表示请求的资源与资源的当前状态发生冲突,410( Gone) 表示服务器上的某个资源被永久性的删除
2144+ * 错误状态响应码:在 HTTP1.1 中新增了 24 个错误状态响应码,如 409( Conflict) 表示请求的资源与资源的当前状态发生冲突,410( Gone) 表示服务器上的某个资源被永久性的删除
21432145
21442146* 缓存处理:在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag,If-Unmodified-Since,If-Match,If-None-Match等更多可供选择的缓存头来控制缓存策略
21452147
2146- * 带宽优化及网络连接的使用:HTTP1.0 中,存在一些浪费带宽的现象,例如客户端只需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了 range 头域,允许只请求资源的某个部分,即返回码是 206( Partial Content) ,这样就方便了开发者自由的选择以便于充分利用带宽和连接
2148+ * 带宽优化及网络连接的使用:HTTP1.0 中,存在一些浪费带宽的现象,例如客户端只需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1 则在请求头引入了 range 头域,允许只请求资源的某个部分,即返回码是 206( Partial Content) ,这样就方便了开发者自由的选择以便于充分利用带宽和连接
21472149
21482150HTTP 和 HTTPS 的区别:
21492151
@@ -4135,8 +4137,8 @@ public class ServletDemo08 extends HttpServlet {
41354137
41364138** 常用的会话管理技术** :
41374139
4138- * Cookie:客户端会话管理技术,用户浏览的信息以键值对( key=value) 的形式保存在浏览器上。如果没有关闭浏览器,再次访问服务器,会把cookie带到服务端 ,服务端就可以做相应的处理
4139- * Session:服务端会话管理技术。当客户端第一次请求 session 对象时候,服务器为每一个浏览器开辟一块内存空间,并将通过特殊算法算出一个 session 的 ID,用来标识该 session 对象。由于内存空间是每一个浏览器独享的,所有用户在访问的时候,可以把信息保存在session对象中。同时服务器把sessionId写到cookie中 ,再次访问的时候,浏览器会把cookie (sessionId)带过来,找到对应的session对象 。
4140+ * Cookie:客户端会话管理技术,用户浏览的信息以键值对( key=value) 的形式保存在浏览器上。如果没有关闭浏览器,再次访问服务器,会把 cookie 带到服务端 ,服务端就可以做相应的处理
4141+ * Session:服务端会话管理技术。当客户端第一次请求 session 对象时候,服务器为每一个浏览器开辟一块内存空间,并将通过特殊算法算出一个 session 的 ID,用来标识该 session 对象。由于内存空间是每一个浏览器独享的,所有用户在访问的时候,可以把信息保存在 session 对象中。同时服务器把 sessionId 写到 cookie 中 ,再次访问的时候,浏览器会把 cookie (sessionId) 带过来,找到对应的 session 对象 。
41404142
41414143 tomcat 生成的 sessionID 叫做 jsessionID
41424144
@@ -4166,7 +4168,7 @@ public class ServletDemo08 extends HttpServlet {
41664168
41674169Cookie:客户端会话管理技术,把要共享的数据保存到了客户端(也就是浏览器端)。每次请求时,把会话信息带到服务器,从而实现多次请求的数据共享。
41684170
4169- 作用:保存客户浏览器访问网站的相关内容(需要客户端不禁用Cookie ),从而在每次访问同一个内容时,先从本地缓存获取,使资源共享,提高效率。
4171+ 作用:保存客户浏览器访问网站的相关内容(需要客户端不禁用 Cookie ),从而在每次访问同一个内容时,先从本地缓存获取,使资源共享,提高效率。
41704172
41714173![ ] ( https://gitee.com/seazean/images/raw/master/Web/Cookie类讲解.png )
41724174
@@ -4317,7 +4319,7 @@ XSS 全称 Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏
43174319
43184320Session:服务器端会话管理技术,本质也是采用客户端会话管理技术,不过在客户端保存的是一个特殊标识,共享的数据保存到了服务器的内存对象中。每次请求时,会将特殊标识带到服务器端,根据标识来找到对应的内存空间,从而实现数据共享。简单说它就是一个服务端会话对象,用于存储用户的会话数据。
43194321
4320- Session域 (会话域)对象是Servlet规范中四大域对象之一 ,并且它也是用于实现数据共享的
4322+ Session 域 (会话域)对象是 Servlet 规范中四大域对象之一 ,并且它也是用于实现数据共享的
43214323
43224324| 域对象 | 功能 | 创建 | 销毁 | 使用场景 |
43234325| -------------- | ------ | ------------ | ----------------------------------------- | ------------------------------------------------------------ |
0 commit comments