爬虫学习--http请求详解

上篇博客里面写了,爬虫就是发http请求(浏览器里面打开发送的都是http请求),而后获取到response,我们再从response里面找到想要的数据,存储到本地。浏览器

我们本章就来讲一下什么是http请求,它里面都有哪些东西,咱们在写爬虫的时候,怎么http请求里面哪些对咱们的爬虫有影响。服务器

http请求过程

 

我们打开一个网站的时候,过程是这样的客户端(浏览器)发送请求到服务端(你打开的网站所在的服务器),服务端接收到请求,处理,返回数据给客户端(浏览器),而后我们在浏览器里面看到了数据。post

明白了这个过程以后呢,我们再来讲http请求里面都包含了什么东西。测试

请求方式

 

主要有:GET/POST两种类型经常使用,另外还有HEAD/PUT/DELETE/OPTIONS
GET和POST的区别就是:请求的数据GET是在url中,POST则是存放在请求体里面。网站

GET:通常向服务器获取数据用get请求,get请求的数据都是放在url中的,实质上和post请求没有太大的区别,固然也能够用来向服务器发送数据。url

POST:通常向服务器发送数据用post请求,post请求的数据放在请求体里。blog

HEAD:与GET方法同样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法能够在没必要传输所有内容的状况下,就能够获取其中“关于该资源的信息”(元信息或称元数据)。ip

PUT:向指定资源位置上传其最新内容。资源

OPTIONS:这个方法可以使服务器传回该资源所支持的全部HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,能够测试服务器功能是否正常运做。开发

DELETE:请求服务器删除Request-URI所标识的资源。

 

请求url

 

URL,即统一资源定位符,也就是咱们说的网址,统一资源定位符是对能够从互联网上获得的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每一个文件都有一个惟一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

URL的格式由三个部分组成:
第一部分是协议(或称为服务方式)。  http/https
第二部分是存有该资源的主机IP地址(有时也包括端口号)。 www.nnzhp.cn/192.168.1.1:8888
第三部分是主机资源的具体地址,如目录和文件名等。   /index

爬虫爬取数据时必需要有一个目标的URL才能够获取数据,所以,它是爬虫获取数据的基本依据。

 

请求头

 

一个请求由两部分组成, 请求头和请求体。

包含请求时的头部信息,如User-Agent,Host,Cookies等信息,user-agent就是你请求用的是什么浏览器,host就是服务端的地址,还有不少信息,服务端是如何分辨你是用的什么浏览器,你的ip地址就是从请求头里面获取到的。下面就是在请求我博客的时候,发送的头信息。

 

 

请求体

 

请求体就是发送数据的时候,数据放在请求体里面。get请求是没有请求体的,从上面的截图也能看到,下面是没有这个请求体的。post请求才有请求体。下面的截图能够看到登录博客的这个请求是一个post请求,登录的帐号密码就是放在请求体里面的。

 

http响应

 

上面说了请求,下面说响应。

发送了请求,服务端要给返回数据嘛。这个就是响应,请求是你发出去的,响应是服务端返回给你的。

响应包含了2个部分,一个是响应头,一个是响应体。响应头里面包含了响应的状态码,返回数据的类型,类型的长度,服务器信息,Cookie信息等等。

响应体里面就是具体返回的数据了。

 

响应状态码

 

有不少响应状态,不一样的状态码表明不一样的状态,常见的状态码如:200表明成功,301跳转,404找不到页面,502服务端错误

  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——须要后续操做才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者没法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误 常见代码:
  • 200 OK 请求成功
  • 400 Bad Request 客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized 请求未经受权,这个状态代码必须和WWW-Authenticate报头域一块儿使用
  • 403 Forbidden 服务器收到请求,可是拒绝提供服务
  • 404 Not Found 请求资源不存在
  • 503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
  • 301 目标暂时性转移
  • 302 目标永久性转移

 

 

响应头、响应体

 

看下图~

 

相关文章
相关标签/搜索