1.无状态HTTP 通俗的讲:一个浏览者发出的请求都是由实现了IHttpHandler接口的对象 进行响应,由于下次访问不一定还是上次那个对象进行响应,上次响应完毕后的 对象可能已经被销毁了,(写在类变量的值早就不存在了) 因此不要将状态信息保存到类变量中
2.无状态的根本原因: 浏览器和服务器使用Socket通信,都遵循HTTP协议,服务器将请求结果返回给浏览器后 会关闭当前Socket连接,而且服务器会在处理请求页面完毕后(也就是 将响应报文发送给浏览器后),销毁页面对象
3.应用层面的原因是: 浏览器和服务器之间通信都遵守HTTP协议
4.对网站造成的影响: 如果用户录入了一些信息,当跳转到下一个页面时, 数据丢失,再也不能获得那些数据. 如果要知道上一次的状态信息,我们就得把这个状态信息记录在某个地方 a.服务器端 b.浏览器端 c.表单元素中: 如 隐藏域<input type=“hidden”/>(Http报文)
1.浏览器和服务器软件 就是通过Socket通信的 (两个人通过电话联系) 2.浏览器和服务器软件 通过http协议的语法来规范发送的数据格式(两个人在电话里用中文交流)
3.TCP是可靠连接,建立连接时非常耗费资源. 所以http协议采用了短连接 与 长连接来解决 http协议1.1版本前,都使用的短连接 : 也就是,浏览器发送任何一次请求来 服务器响应后悔立即断开当前连接,如果浏览器再次请求 需要重新建立连接 http协议1.1版本,开始使用长连接 : 服务器接收一次请求并发回响应报文后,会等一段时间 ,这段时间里如果该浏览器继续发送新的请求的话 可以直接使用当前连接,但是如果这段时间,那么服务器就会断开当前连接
4. 静态页面:在服务器就相当于直接读取文件字符串,然后返回给客户端浏览器 (任何时候看到的都是一样的界面) 动态页面:在服务器是先交给某语言环境虚拟机编译运行,按照语法生成代码返回客户端浏览器 (不同条件和时候访问看到的界面都不同)
浏览器和服务器 本质上 就是两个使用Socket进行基于HTTP协议通信的两个应用程序
5.浏览器: 一个可以向服务器软件发送基于HTTP协议语法的各种数据请求, 并对从服务器软件发来的信息和各种多媒体数据格式进行解释,显示和播放的程序 6.服务器: 一个管理资源并为浏览器提供服务的计算机软件 交互时使用HTTP协议