HTTP基本原理
URL和URI
- url:统一资源定位符,用来定位某些资源,是uri的子集
- URI:统一资源标志符,用来标识某些资源
HTTP和HTTPS
- HTTP:超文本传输协议,即从网络传输超文本数据到本地浏览器的协议。目前广泛使用的是HTTP 1.1版本。
- HTTPS:以安全为目标的超文本传输协议,在HTTP的基础上加入了SSL层,用来进行安全认证。
- 作用:建立一个安全的的通道来保证数据传输的安全;确认网络的真实性,可以查看网站的真实信息。
请求和响应
- 请求:包括请求方式、请求网址,请求头、请求体。
- 常见的请求方式:GET和POST
- Get:请求页面,并返回页面数据,参数会暴露在URL中,提交的数据最多只有1024字节。
- Post:用于表单提交和文件上传,参数不会暴露在url中,而是包含在请求体中请求的数据没有大小的限制。
- 请求的网址:即请求的url,唯一确定我们想要的资源
- 请求头:用来说明服务器要使用的附加信息,常见信息有cookies、referer,user-agent等。
- accept:请求报头域,用于指定浏览器可接受哪些类型的信息。
- accept-language:指定浏览器可接受的语言类别。
- accept-encoding:指定浏览器可接受的内容编码。
- Host:用于指定请求资源的的主机IP和端口号
- cookie:为了辨别用户进行绘画跟踪而存储在用户本地的数据,主要功能是维持当前会话.
- referer:标志当前请求是从哪个页面发过来的。
- user-agent:一个特殊的字符串,可以使服务器识别客户使用的浏览器版本信息以及操作系统及版本。
- content-type:互联网媒体类型,表示具体请求中的媒体类型信息,例如:text/html代表html格式。
- 请求体:请求体一般承载的内容是post请求中获得表单数据,对于get请求,请求体为空。
- 常见的请求方式:GET和POST
- 响应:由服务端返回给客户端,可以分为三部分:响应状态码,响应头和响应体。
- 响应状态码:200表示正常,404表示页面找不到等
- 响应头:包含了服务器对请求的应答信息,包括content-type,server等。
- date:标识响应产生的时间
- last-modified:指定资源的最后修改时间
- content-encoding:指定响应内容的编码
- server:包含服务器的信息,例如名称,版本号等
- content-type:文档类型,指定返回的数据类型是什么
- set-cookies:设置cookies
- expires:设置响应过期时间,将内容加载到缓存中,降低服务器负载,缩短加载时间。
- 响应体:所返回的数据。
爬虫的基本流程
- 获取网页源代码-分析源码,提取数据-保存数据-自动化程序
会话和cookies
- 无状态http:http的一个特点,无状态,也就是说http协议对事物处理是没有记忆能力的。
- 保持http链接状态的两个技术:会话和cookies。服务器通过识别cookies识别是哪个用户,然后再判断用户是否处于登陆状态,从而返回对应的响应
- 会话:会话在服务器端,用来保护用户的会话信息。
- cookies:在客户端,与会话协作,实现了登录会话的维持状态。
- name:cookie的名字,一旦创建不可改变
- value:该cookie的值
- domain:设置可以访问该cookie的域名,即有哪些域名可以访问该cookie
- max-age:设置cookie失效时间,单位为秒
- path:设置cookie的使用路径,即哪些路径可以使用cookie,如果设置/,则本域名下的所有路径都可以访问该cookie
- size:cookie的大小