一.静态网页和动态网页
网页的内容是HTML代码编写的,文字,图片等内容均通过写好的HTML代码来指定,这种页面叫作静态网页;这种网页缺陷很大,如可维护性差,不能根据URL灵活多变的显示内容等;如想要给网页的URL传入一个name参数,让其在网页中显示出来,这是无法做到的。
动态网页可以动态解析URL中的参数变化,关联数据库并动态呈现不同的页面内容,灵活多变;动态网站还可以实现用户登录和注册功能
二.无状态HTTP
HTTP的无状态是指HTTP协议对事务的处理没有记忆能力,也就是说服务器不知道客户端是什么状态。
此时用于保持HTTP连接状态的技术就出现了,分别是会话(Session)和Cookies,会话在服务端,即服务器端,用来保持用户的会话信息;Cookies在客户端,即浏览器端,有了Cookies,浏览器在下次访问网页时会自动附带上它发送给服务器,服务器通过识别Cookies并鉴定是哪个用户,然后判断用户是否是登录状态,然后返回对应的响应。
因此在爬虫中,有时候处理需要登录才能访问的页面时,我们一般会直接将登录成功后获取的Cookies放在请求头里面直接请求,不必重新模拟登录
1)会话
在web中,会话对象用来存储特定用户会话所需的属性及配置信息,这样,当用户在用户在应用程序的web页之间跳转时,存储在会话对象中的变量将不会丢失,而是在整个用户会话中一直存在下去;当用户请求来自应用程序的Web页时,则Web服务器将自动创建一个会话对象;当会话过期或被放弃后,服务器将终止该会话。
2)Cookies
Cookies指某些网站为了辨别用户身份,进行会话跟踪而存储在用户本地终端上的数据
1)会话维持 当客户端第一次请求服务器时,服务器会返回一个请求头中带有Set-Cookie字段的响应给客户端,用来标记是哪个用户,客户端浏览器会把Cookies保持起来。当浏览器下次请求该网站时,浏览器会把此Cookies放到请求头一起提交给服务器,Cookies携带了会话ID信息,服务器检查该Cookies即可找到对应的会话是什么,然后再判断会话来以此辨认用户状态。 在成功登录某个网站时,服务器会告诉客户端设置哪些Cookies信息,在后续访问页面时客户端会把Cookies发送给服务器,服务器再找到对应的会话加以判断。如果会话中的某些设置登录状态的变量时有效的,那就证明用户处于登录状态,此时返回登录之后才能查看的网页内容,浏览器进行解析就能看到。反之不行。 2)属性结构 Cookies有如下几个属性 A.name:该Cookies的名称,一旦创建,该名称便不可更改 B.Value:该Cookies的值,如果值为Unicode字符,需要为字符编码;如果值为二进制数据,则需要使用BASE64编码 C.Domain:可以访问该Cookies的域名。 D.Max Age:该Cookies 失效的时间,单位为秒,也常和Expires一起使用,可以通过它计算其有效时间。Max Age如果为正数,则该Cookies在Max Age秒后失效。如果为负数,则关闭浏览器时Cookies及失效 E.Path:该Cookie的使用路径。如果设置为/path/,则只有路径为/path/的页面可以访问该Cookie。如果设置为/,则本域名下的所有页面都能访问Cookies F.Size字段:此Cookie的大小 G.HTTP字段:Cookie的httponly属性。此属性为true,则只有在Http头中会带有此Cookies信息。 H.Secure:该Cookies是否仅被使用安全协议传输。默认为false
3)会话也需要设置失效时间