1、
2、
3、
4、
5、
6、
7、
8、
当我们输入完url,浏览器就向服务器发送了一个request请求,web服务器受到request请求后就会进行相应的处理,生成相应的response,然后发送回浏览器。浏览器解析服务器发回的html文档,这样就能看到平常看到的网页。request还有可能是经过代理服务器的,这样最后才到达服务器。代理服务器其实就是网络信息的中转站。它有很多功能,最主要的就是它可以提高访问速度,因为大部分代理服务器都有缓存功能,当再次访问相同请求的时候,就可以从代理服务器获取,而不用再去请求web服务器。
9、
10、
缓存处理:http1.0主要持有它的头部当中的if-modify-since这个参数来作为缓存判断的标准,而http1.1则引入了更多的缓存策略。比如说e_ tag、if-none_match, e_tag是配合in_none_match来使用。就是说http1.0和http1.1主要在缓存策略上有很大的不同,
带宽优化及网络连接的使用:在http1.0存在着一些浪费带宽的情况,比如说客户端只请求服务端的一小部分,但是服务端却把所有的东西都返回回来了,但是又不支持断点续传功能。而在http 1.1中引入了一个range范围的头部区域,它允许只请求网络资源的一部分。这样就方便了开发者的选择。
Host头处理:在1.0中认为每台服务绑定了唯一的ip地址,因此请求消息中的url并没有传递主机名。但是随着虚拟主机的发展,在一台服务器上可能存在着多台主机,并且共一个ip地址,而http1.1在这一点上做了改进。它的请求消息和相应消息,都支持host头的改进,并且在请求消息中,如果没有host头处理,就会报告400错误。
长连接:http1.1支持长连接。长连接是在一个http请求上可以传递多个http请求,而不是发送一个http请求就断开连接,再发送一个http请求,再断开一个连接。在http 1.1中默认开启了keep-alive的字段,这在一定程度上弥补了http1.0每发送一个请求就需要创建一个连接的情况。
a指http 1.0
b、c、d指http1.1
11、
get用于获取资源,post用来提供、更新服务上的资源
提交的数据:get提交的数据一般情况下会放在url之后,用?来分割。post提交数据一般是放在hppt的body中。
get提交的数据是有限制的,因为浏览器对url的大小是有限制的。post提交的是body,所以对数据的大小没有限制。
get请求是通过Request.QueryString这个方法来获取变量值的,而post方法则是通过Request.Form这个方法来获取变量值的。
get请求把参数放在url之后,比如登陆的用户名和密码,这样不安全。如果有缓存的话,就可以通过缓存来访问主机地址。通过历史记录就可以获取用户名和密码。