zoukankan      html  css  js  c++  java
  • 爬虫基础(1)HTTP基本原理

    爬虫基础

    HTTP基本原理

    2.1.1URI和URL

    URI 统一的资源标志符
    URL 统一资源定位符
    每个URL都是URI,但是URI不一定都是URL
    URI还包含子类URN(统一资源命名,就像ISBN)

    2.1.2 超文本

    英文名:hypertext
        浏览器看到的网页就是超文本解析而成,我们可以把源代码HTML,
    称为超文本。
    每个网页都可以通过开发者工具,看到它的源代码。

    2.1.3 HTTP和HTTPS

    HTTP和HTTPS都是一种访问协议。有时还有ftp,sftp,smb的协议。
    
    HTTP:超文本传输协议。
    作用:网络传输超文本数据到本地浏览器的传送协议
    
    HTTPS:是在HTTP上加上了防护层SSL.也就是安全的协议。
    作用:文本传输的过程会通过SSL加密。

    2.1.4 HTTP请求过程

    进入开发者模式
    输入URL,然后观察network,就会出现对应的URL,信息。

    1S7G7~MA7OV@_%GPFFLKS)F

    Name:是请求的名称,一般会将URL的最后一部分内容当作名称。
    Status:响应的状态码,这里显示位200,代表响应式正常的。
    Type:请求文档的类型。这里为document,代表我们这次请求的是一个HTML文档,内容就是一些HTML代码。
    Initiator:请求资源,标记请求是由哪个对象或进程发起的。
    Size:从服务器下载的文件和请求的资源的大小,如果是从缓存中取得的资源,则该列会显示from cache。
    Time:发起请求到响应的总时间。
    Waterfall:网络请求的可视化瀑布。
    
    浏览器接到响应后,会解析响应的内容,进而呈现网页的内容。

    2.1.5 请求

    请求是指:由客户端向服务器发出的要求。
    分为四部分内容:
        1.请求方法
        2.请求的URL
        3.请求头(Request Header)
        4.请求体(Request Body)
    
    一,请求方法
        常见方法: GET 和 POST。
        
        GET:在浏览器中输入一个URL并回车,就是一个GET请求,请求的参数会包含到URL中。
        
        POST:要在表单中提交后发起,比如一个登入表单,输入用户名和密码后,点击登录,这通常就会发起一个POST请求,其数据会一表单的形式传输,不会体现在URL中。
        
        GET 和 POST请求的区别:
            GET请求中的参数包含在URL里面,数据可以在URL中看见,而POST请求的URL不会包含这些数据,数据都是以表单的形式传输,会包含在请求体中。
            
            GET请求提交的数据最多1024字节,而POST没有限制。
        运用POST请求的常见:
            密码登入,保证密码不显示在URL中,保证安全。
            上传数据过大时,也会选用POST方式。
        其他请求方式参考: http://www.runoob.com/http/http-methods.html

    image

    二,请求的网址
        也就是统一的资源定位符URL,它可以确定我们想请求的唯一资源。
    三,请求头
        请求头,用来说明服务器要使用的附加信息,比较重要的信息有 Cookie、 Referer、 User-Agent等。 下面简要说明一些常用的头信息
            口 Accept:请求报头域,用于指定客户端可接受哪些类型的信息。
            Accept-Language:指定客户端可接受的语言类型。 
            Accept-Encoding :指定客户端可接受的内容编码。 
            Host:用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位 置。 从 HTTP 1. l 版本开始,请求必须包含此内容。 
            Cookie :也常用复数形式Cookies,这是网站为了辨别用户进行会话跟踪而存储在用户本地 的数据。 它的主要功能是维持当前访问会话。 例如,我们输入用户名和密码成功登录某个网 站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时, 会发现都是登录状态,这就是 Cookies 的功劳。 Cookies 里有信息标识了我们所对应的服务器 的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上 Cookies 并将其发送给服 务器,服务器通过 Cookies 识别出是我们自己,并且查出当前状态是登录状态,所以返回结 果就是登录之后才能看到的网页内容。 
            口 Referer:此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相 应的处理,如做来源统计、防盗链处理等。 
            口 User-Agent:简称 UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统 及版本、 浏览器及版本等信息。 在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很 可能会被识别为爬虫。
            口 Content-Type:也叫互联网媒体类型( Internet Media Type )或者 MIME 类型,在 HTTP 协议 消息头中,它用来表示具体请求中的媒体类型信息。 例如, text/html 代表 HTML 格式, image/gif代表 GIF 图片, application/json 代表 JSON类型,更多对应关系可以查看此对照表: http://tool.oschina.neνcommons。

    2.1.6 响应

    响应,由服务端返回给客户端,可以分为三部分:响应状态码( Response Status Code )、响应头 ( Response Headers )和响应体( Response Body )。
    
    1.响应状态码
        200 代表响应正常。
        404 代表为找到网页。
        500 代表服务器内部发生错误。
        
        
    2.响应头
        响应头包含了服务器对请求的应答信息,如 Content-Type、 Server、 Set-Cookie 等。
        下面简要说明 一些常用的头信息。 
        Date:标识响应产生的时间。
        Last-Modified:指定资源最后的修改时间。
        Content-Encoding:指定响应内容的编码。
        Serve:包含服务器信息,比如名称,版本号等。
        Content-Type:文档的类型,指定返回的数据类型是什么,如text/html代表返回HTML文档,application/x-javascript则代表返回JavaScript文件,image/jpeg则代表返回得是图片。
        Set-Cookie:设置Cookies.响应头中的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies请求。
        Expires:指定响应的过期时间,可以使代理服务器将加载的内容更新到缓存中。如果再次访问就可以直接从缓存中加载,降低服务器的负载,缩短加载时间。
        
    3.响应体(*)
        。 响应的正文数据都在响应体中,比如请求网页时,它的响应体就 是网页的 HTML 代码; 请求一张图片时, 它的响应体就是图片的二进制数据。 我们做爬虫请求网页后, 要解析的内容就是响应体
    追求吾之所爱
  • 相关阅读:
    LeetCode偶尔一题 —— 617. 合并二叉树
    《剑指offer》 —— 链表中倒数第k个节点
    《剑指offer》 —— 青蛙跳台阶问题
    《剑指offer》—— 二维数组中的查找
    《剑指offer》—— 替换空格
    《剑指offer》—— 合并两个排序的链表
    《剑指offer》—— 礼物的最大价值
    生成Nuget 源代码包来重用你的Asp.net MVC代码
    Pro ASP.Net Core MVC 6th 第四章
    Pro ASP.NET Core MVC 6th 第三章
  • 原文地址:https://www.cnblogs.com/rstz/p/12587326.html
Copyright © 2011-2022 走看看