http(1.1)知识点
http协议概念
http协议是用于客户端和服务器端之间的超文本传输协议,通过请求和响应实现通信,是一种无状态协议(即对请求和响应不会做持久化处理)。
http的请求方式(*为常见)
- get :获取服务器端的资源
- post:客户端传输数据到服务器端,并获得相应的返回数据
put :客户端发送文件到服务器
head :只返回response的头部信息
delete :删除文件
options:获取指定资源可访问的方式
trace : 客户端追踪通信,查看request是如何被篡改的(常见于代理服务器)
connect:要求用隧道协议连接代理服务器
http(1.1)持久连接
保持tcp连接状态,持久连接有利于提高传输速度,提高传输效率
cookie和session
cookie的原理:通过request和response报文中写入cookie信息来控制客户端,首次访问时,cookie会根据服务器端中的set-cookie字段将cookie保存本地中,以后再访问同一服务器时会自动调用此cookie实现访问,不同服务器下的cookie是保存在其域名下的。
session原理:由于登录信息中会有用户的个人信息,为了防止用户信息被盗用,则使用session机制,session机制将用户信息保存在服务器中并生成特定的加密key,将其返回给用户保存在cookie中,再次访问服务器时,服务器端通过session确定本次访问的用户,并将相应的页面返回给用户。(session具有时效性,其由服务器端确定)。
现在很多无需登录访问的服务器也会给根据用户ip等信息给用户生成特定的id,其主要目的就是反爬。
http code
即response返回的状态码,表示着某次request获取到的response的情况
1开头:request正在处理
2开头:请求正常处理
常见:
200:request正常处理,response正常返回 204:request正常处理,无资源返回
206:request正常处理,其response内容只是一部分(request头部有指定response的大小)
3开头:request被重定向
常见:
301:资源的url已经更新(永久重定向)
302:资源的url已经更新(临时重定向)
303:和302相似,不同的是要求用户get获取资源
304:资源已找到,但是不符合条件请求(非重定向)
4开头:服务器无法处理请求(客户端出错)
常见:
400:request出错(请求报文中有语法错误)
403:不允许访问资源
404:访问的资源不存在
5开头:服务器处理出错
常见:
500:内部资源出错
503:服务器超负荷运载,或者正处在停机维修
爬虫中http code原因,301,302等是指需要有验证码或者是需要登录;403常指ip被封,在服务器正常的情况下,500常见于robot协议所致。
http首部信息
request首字部
https
https = http+加密+认证+完整性保护
html+css+javascript
html:超文本标记语言,通过渲染,解析后就会显示出web页面
css:规定html展现的样式,通过html的标签来定位某个空间内的样式
javascript:是一种使用在网页中的脚本语言,其主要作用是用来实现动态html
DOM:是操作html的api,使用其可以将html中的元素当做对象操作,常用javascrpit配合使用
ajax:无需刷新页面就可以向服务器传输或者读取数据,通过xhtml和css来标准化呈现,DOM实现动态化的显示和交互,xml和xslt来实现数据的交换和处理,xmlhttprequests实现异步数据读取,javascript处理数据
原理:在服务器和用户之间创建一个中间层,使用户操作和服务器响应异步,只有在读取数据时才会从AJax引擎代向服务器发出请求。