爬虫基础(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 代码; 请求一张图片时, 它的响应体就是图片的二进制数据。 我们做爬虫请求网页后, 要解析的内容就是响应体
posted @ 2020-03-28 14:42  ACWink  阅读(145)  评论(0编辑  收藏  举报