爬虫系列 | 二、Http请求和响应,写爬虫这些内容必须掌握

爬虫是创建在网络请求的基础上。因此在开始爬虫以前必定要有必定的网络知识。浏览器

1、HTTP协议

HTTP协议,全称为HyperText Transfer Protocol。翻译过来呢就是超文本传输协议,默认端口是80,而HTTPS呢则是在HTTP的基础上加入了SSL层,这样呢就会相对安全,请求不会那么轻易的被别人劫持。默认端口是443。安全

好比咱们常常访问的百度、淘宝、B站、P站 等等 都是HTTPS的服务器

当咱们在浏览器中输入网址,按回车后会发生什么?

如下为简述,更多细节能够自行查阅

一、好比我在浏览器中输入www.p_zhan.com (别试了,这是个假网站)。首先会进行DNS解析,获取服务器的IP地址。网络

二、而后客户端和服务器端会创建TCP连接,连接的过程就是三次握手。经过三次握手以后,客户端与服务端会创建一个可靠的连接,而后就能够进行数据的传输了。并发

三、发送HTTP请求,浏览器输入的地址请求方式是GET请求!网站

四、获取服务器的响应。响应码又分为2xx,3xx,4xx,5xx等 ui

五、将内容进行解码,若是数据须要展现,再由浏览器进行渲染。spa

请求方法:在HTTP/1.1定义的请求虽然有8种,可是掌握如下6种基本就够了

  • GET:发送的请求是获取服务器上的资源。请求体中不会包含请求数据,请求数据会放在协议头上
  • POST:向服务器提交资源,好比表单提交,上传文件等。请求数据会放在请求体重
  • HEAD:本质与GET同样。可是不返回报文主体部分,用于确认URI的有效性以及资源的更新时间等
  • PUT:经常使用于上传文件。
  • DELETE:删除文件
  • OPTIONS:查询请求的资源支持的请求方法。

响应码:

响应码又称为状态码,表示页面服务器超文本传输协议响应状态的3位数字代码。翻译

1xx: 信息
消息: 描述:
100 Continue 服务器仅接收到部分请求,可是一旦服务器并无拒绝该请求,客户端应该继续发送其他的请求。
101 Switching Protocols 服务器转换协议:服务器将听从客户的请求转换到另一种协议。
103 Checkpoint 用于 PUT 或者 POST 请求恢复失败时的恢复请求建议。
2xx: 成功
消息: 描述:
200 OK 请求成功(这是对HTTP请求成功的标准应答。)
201 Created 请求被建立完成,同时新的资源被建立。
202 Accepted 供处理的请求已被接受,可是处理未完成。
203 Non-Authoritative Information 请求已经被成功处理,可是一些应答头可能不正确,由于使用的是其余文档的拷贝。
204 No Content 请求已经被成功处理,可是没有返回新文档。浏览器应该继续显示原来的文档。若是用户按期地刷新页面,而Servlet能够肯定用户文档足够新,这个状态代码是颇有用的。
205 Reset Content 请求已经被成功处理,可是没有返回新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它。
3xx: 重定向
消息: 描述:
300 Multiple Choices 多重选择。连接列表。用户能够选择某连接到达目的地。最多容许五个地址。
301 Moved Permanently 所请求的页面已经转移至新的 URL 。
302 Found 所请求的页面已经临时转移至新的 URL 。
303 See Other 所请求的页面可在别的 URL 下被找到。
304 Not Modified 未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(通常是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还能够继续使用。
305 Use Proxy 客户请求的文档应该经过Location头所指明的代理服务器提取。
306 Switch Proxy 目前已再也不使用,可是代码依然被保留。
307 Temporary Redirect 被请求的页面已经临时移至新的 URL 。
308 Resume Incomplete 用于 PUT 或者 POST 请求恢复失败时的恢复请求建议。
4xx: 客户端错误
消息: 描述:
400 Bad Request 由于语法错误,服务器未能理解请求。
401 Unauthorized 合法请求,但对被请求页面的访问被禁止。由于被请求的页面须要身份验证,客户端没有提供或者身份验证失败。
402 Payment Required 此代码尚没法使用。
403 Forbidden 合法请求,但对被请求页面的访问被禁止。
404 Not Found 服务器没法找到被请求的页面。
405 Method Not Allowed 请求中指定的方法不被容许。
406 Not Acceptable 服务器生成的响应没法被客户端所接受。
407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。
408 Request Timeout 请求超出了服务器的等待时间。
409 Conflict 因为冲突,请求没法被完成。
410 Gone 被请求的页面不可用。
411 Length Required "Content-Length" 未被定义。若是无此内容,服务器不会接受请求。
412 Precondition Failed 请求中的前提条件被服务器评估为失败。
413 Request Entity Too Large 因为所请求的实体太大,服务器不会接受请求。
414 Request-URI Too Long 因为 URL 太长,服务器不会接受请求。当 POST 请求被转换为带有很长的查询信息的 GET 请求时,就会发生这种状况。
415 Unsupported Media Type 因为媒介类型不被支持,服务器不会接受请求。
416 Requested Range Not Satisfiable 客户端请求部分文档,可是服务器不能提供被请求的部分。
417 Expectation Failed 服务器不能知足客户在请求中指定的请求头。
5xx: 服务器错误
消息: 描述:
500 Internal Server Error 请求未完成。服务器遇到不可预知的状况。
501 Not Implemented 请求未完成。服务器不支持所请求的功能,或者服务器没法完成请求。
502 Bad Gateway 请求未完成。服务器充当网关或者代理的角色时,从上游服务器收到一个无效的响应。
503 Service Unavailable 服务器当前不可用(过载或者当机)。
504 Gateway Timeout 网关超时。服务器充当网关或者代理的角色时,未能从上游服务器收到一个及时的响应。
505 HTTP Version Not Supported 服务器不支持请求中指明的HTTP协议版本。
511 Network Authentication Required 用户须要提供身份验证来获取网络访问入口。

在这里插入图片描述

相关文章
相关标签/搜索