3、处理请求:对请求报文进程解析,获知请求资源等信息;
根据请求文的首部来判定用户请求的资源;
有许多详细信息:HEADER
host:
url: /images/logo.jpg
method: get
4、访问资源:获取报文中指定请求的资源;
web服务器即web资源服务器,负责发送预先创建好的或动态生成的内容;此些的放置位置称为docroot;
/var/www/html/a.html
docroot = /var/www/html
/var/www/html/imags/jpgs/a.jpg
web服务器支持多种资源映射方式:(将文件系统路径和URL路径进行映射)
(1) docroot
(2) virtualhost docroot
(3) user home docroot
(4) alias
注意:访问控制机制有可能会影响资源的访问权限;
5、构建响应报文:
6、发送响应报文:
长连接:keep-alive
短连接
7、记录日志
七、http 无状态
http无状态:
是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。其次随着客户端与服务器进行动态交互的Web应用程序的出现,如购物车程序需要知道用户到底在之前选择了什么商品,则需要解决无状态的问题。为支持客户端与服务器之间的交互,需要通过不同的技术为交互存储状态,而这些不同的技术就是Cookie和Session了。
Cookie解决方案:
通过客户端保持状态,该方式将服务器发给客户端的特殊信息,以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。当用户连接到支持cookie的网站时,用户会提供包括用户名在内的个人信息并且提交至服务器;接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息。如登陆购物添加到购物车以及登陆时是否保存密码等都是通过将信息保存到Cookie是产生的作用。
Session解决方案:
当客户端访问服务器时,服务器根据需求设置Session,将会话信息保存在服务器上,同时将标示Session的SessionId传递给客户端浏览器。浏览器将这个 SessionId 保存在内存中,我们称之为无过期时间的 Cookie。浏览器关闭后,这个 Cookie 就会被清掉,它不会存在于用户的 Cookie 临时文件。以后浏览器每次请求都会额外加上这个参数值,服务器会根据这个 SessionId,就能取得客户端的数据信息。如果客户端浏览器意外关闭,服务器保存的 Session 数据不是立即释放,此时数据还会存在,只要我们知道那个SessionId,就可以继续通过请求获得此Session 的信息。因为此时后台的 Session 还存在,当然我们可以设置一个 Session 超时时间,一旦超过规定时间没有客户端请求时,服务器就会清除对应 SessionId 的 Session 信息。