第一章 爬虫基础之前置知识点 ①

1.1 HTTP基本原理

  • URL的组成部分,包括协议,域名等,其中域名常见的有http和https。
    一般爬虫爬取的也大多数是这两种协议。
    除了协议和域名,url中还可以添加用户名、端口、路径、查询等参数。

  • HTTP和HTTPS的区别
    HTTP是超文本传输协议,作用是把超文本数据从网络传输到本地浏览器。它是万维网和IETF一起弄的规范。
    现在广泛使用的版本是HTTP1.1,具有持久连接、节约带宽、分块传输编码等特点。
    最新的版本是HTTP2.0,这个版本具有多路复用,服务器推送,头信息压缩,二进制协议的特点。
    HTTPS就是HTTP的安全版,在HTTP的基础上加入了SSL层,通过SSL加密所以相对会更加安全。SSL可以建立一个信息安全通道,还可以通过安全签章来确认网站的真实性。

  • HTTP请求的过程

    • 浏览器向服务器发送请求,服务器接受请求并解析处理,然后返回响应给浏览器。
      其中Request包括 请求头、请求URL、请求方法、请求体。
      请求方法常见的一般是get和post,其中get方法带的参数在URL中可见,post请求的URL不会包含这些数据,一般是以表单的形式传输,比较安全。而且get请求提交的数据最多只有1024字节。post请求没有限制。所以一般登录注册那种需要输入账号密码的场景的请求和上传文件的场景都会用post请求。
    • 请求头中Cookie、Referer、User-Agent在爬虫中比较重要和常用
      Cookie是用于在浏览器中储存用户的登录信息及状态,服务器端还会有一个session记录,这俩个东西一起记住用户的登录状态,维持当前访问会话。
      具体过程:每次浏览器向服务器发送请求都会带上Cookie,然后服务器通过Cookie识别出事已经登录的用户,并到session中查询当前的状态,如果是登录状态,那么就会返回登陆之后才能看到的页面。
      Referer是用来标识请求从那个页面发过来的,用来做来源统计和防盗链处理。
      User-Agent简称UA,,可以使服务器识别出客户端使用的操作系统和浏览器的信息,爬虫加上这个信息可以伪装成浏览器。
    • 请求体:一般用于post请求中表单数据的承载,对于get请求一半为空。

    常见响应码
    200:成功
    304:无修改
    400:错误请求
    401:未授权
    403:禁止访问
    404:未找到
    407:需要代理授权
    408:请求超时
    410:已删除
    414:URL过长
    500:服务器内部错误
    503:服务不可用

    • 响应体:关键部分,如果请求网页,响应体就是HTML代码;如果请求图片,响应体就是图片的二进制数据。爬虫解析的就是响应体的内容。
  • HTTP2.0
    HTTP2.0通过支持完整的请求响应复用来减少延迟,并通过有效的压缩HTTP请求头字段的方式将协议开销降至最低,同时增加对请求优先级和服务器推送的支持。

    • 二进制分帧层:HTTP2.0将HTTP协议通信分为二进制编码帧的交换,每个帧对应着自己特定的数据流消息,所有的这些都在一个TCP连接内复用。
    • 多路复用:客户端发起并行请求时,不再依赖多个TCP连接的方式去实现。而是以帧为单位,互不依赖地交错发送,最后到另一端再组装起来,达到多线并行的效果。
    • 流控制:阻止发送给接收方发送过量数据的机制。HTTP2.0提供一套简单的构建块,可以控制方向和窗口大小,实现采用自定义策略来灵活调节资源使用和分配逻辑。
    • 服务器推送:服务器可以对一个客户端请求发送多个响应。意思是除了满足客户端最初的请求之外,还会提前黑客户端推送必要的资源,这样可以减少延迟时间。比如客户端向服务器端请求HTML数据时会主动把JS和css文件推送给客户端。然后客户端也可以有权选择是否接收。主动推送遵循同源策略,服务器不能随便将第三方资源推送给客户端。

1.2 Web网页组成

  • HTML:网页的框架,通过不同类型的标签来表示不同类型的元素对应不同功能。这些标签定义的节点相互嵌套和组合形成了复杂的层次关系。
  • CSS:网页页面样式排版,通过link标签引入HTML
/*
 大括号前面是一个CSS选择器,意思是选中id为head_wrapper的class为s-ps-islite的节点,
  此节点内部的class为s-p-top,大括号内部就是一条条样式规则:
  position为绝对布局,bottom指定节点下边距为40像素等等...
*/
#head_wrapper .s-ps-islite .s-p-top {
        position:absolute;
        bottom:40px;
        width:100%;
        height:181px;
}
  • JavaScript:定义网页的行为,使用script标签引入HTML中
    总结:这一部分是学习爬虫的前置知识回顾。

你可能感兴趣的:(第一章 爬虫基础之前置知识点 ①)