HTTP和HTTPS
HTTP,全称超文本传送协议,是属于计算机网络中应用层的协议,而HTTPS是HTTP加上SSL,HTTP是明文传输,速度快,但安全系数很低,而HTTPS比HTTP安全很多,但缺点是传输速度比较慢。
一.HTTP之请求
这是一个请求报文的例子:
GET /review/best/ HTTP/1.1 #请求行使用了相对url(省略了主机域名)
#从这行开始以下均为请求头,在爬虫中字典的形式进行存储
Host: movie.douban.com #此行给出了主机的域名
Connection: keep-alive #浏览器与服务器的连接方式,该连接方式为长连接,即可不间断通信
Cache-Control: max-age=0 #指定的请求缓存控制方式。此处为不接受缓存。
DNT: 1 #Do not track 禁止跟踪,等于1不跟踪,等于0,可以跟踪。
'''
此处显示用户使用的浏览器型号,识别标志。有时写爬虫,需要带上这个参数,如果不带可能会使服务器认为这是一个爬虫,不返回响应。
'''
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
#告诉服务器,我是从哪个页面或连接过来的,便于服务器处理一些信息。功能:防盗链,防止恶意请求
Referer: https://movie.douban.com/
Accept-Encoding: gzip, deflate, br #表示希望服务器传送文件的编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 #表示用户希望得到的文件语言格式
#用于服务器存储用户的相关信息,以便提供相关服务
Cookie:ll="118099";bid=ZvQAtOVDvww;_pk_r
一个HTTP请求报文由请求行,请求头,请求体组成,请求体用于携带数据,POST请求方式一般都会有请求体,常用于登陆注册,传输大文件,而GET没有。
前面提到一个防盗链,通俗的说就是我希望用户只通过某个指定的网站服务器去访问我自己的音乐服务器,通过Referer可以获知用户是从哪个服务器过来的,如果不是那个特定的服务器便不会返回内容给用户。
还有一个是防恶意请求,即我通过指定的网站服务器可以获知在一段时间内有多少用户访问了我的音乐服务器,并可以根据自己服务器的配置指定在一段时间内可以有多少用户访问,并告知指定的服务器,便于拦截超出的访问量。
二.HTTP之响应
该响应常见的是返回一个html.
html,超文本标记语言,专门用于制作网页,使不同的计算机之间可以互相无障碍的交流。
在爬虫中可以根据此来提取自己所需要的信息。
互联网传输文档类型很多,除了HTML,还有XML,CSS等。
三.SSL
中文名:安全套接字层。听名字就知道这玩意儿很安全,很靠谱。其实确实是名副其实,负责数据传输时的安全任务,类似镖局。SSL是网络结构层中运输层的安全协议。
首先我简明介绍一下计算机网络的结构,最著名的,用处最广泛的莫过于TCP/IP结构了。总共四层,自上而下依次为应用层,运输层,网际层,网络接口层。应用层用于与用户完成交互任务,如HTTP协议就在这一层发挥作用。运输层负责两个主机中进程之间的数据交换,传输的任务,TCP传输控制协议就在这一层。网际层提供两个主机间的通信服务,IP网际协议在这一层发挥作用。网络接口层,对数据进一步封装,加工,这一层已经与物理电路相关连了。
然后咱们再回到SSL上来,这个协议为通过TCP传输的应用层数据提供了安全可靠的保障。反应过程:发送端SSL接收到应用层的数据后读取数据然后进行加密,将加密后的数据交给TCP协议处理,接受端SSL从TCP协议处读取数据,进行解密然后将数据发往应用层。 其提供的安全服务主要有一下几种:
- SSL服务器鉴别,用于用户鉴别服务的真实身份并获取服务器的数字公钥。
- SSL客户鉴别,用于服务器识别对应的用户信息。
- 加密的SSL会话,对用户发送的数据,服务器发送的数据进行加密,并检测传输的数据是否被拦截或篡改。