这篇博文,主要是结合CriseLYJ/Python-crawler-tutorial-starts-from-zero内关于Python爬虫的预备知识进行记录的。
来自科来网络通讯协议图
HTTP概念 HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。 协议:协议规定了通信双方必须遵守的数据传输格式,这样通信双方按照约定的格式才能准确的通信。 无状态:无状态是指两次谅解通信之间是没有任何联系的,每次都是一个新的连接,服务端不会记录前后的请求信息。HTTP 请求流程 List item浏览器先向 IP 发起请求,并获取相应在返回的响应内容(html)中,会带有 css、js、图片等 url 地址,以及 ajax 代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css 等内容会修改页面的内容,js也可以重新发送请求,获取响应从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染 HTTP协议结构图 请求url 地址格式格式说明: scheme://host[:port]/path/…/[?query-string][#anchor] 1. scheme:协议(例如:http, https, ftp) 2. host:服务器的 IP 地址或者域名 3. port:服务器的端口(如果是走协议默认端口,缺省端口80) 4. path:访问资源的路径 5. query-string:参数,发送给 http 服务器的数据 6. anchor:锚(跳转到网页的指定锚点位置)
HTTP 请求 格式 案例根据 HTTP 标准,HTTP 请求可以使用多种请求方法。 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。 HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
请求方式 请求方式描述GET请求指定的页面信息,并返回实体主体。HEAD类似于 get 请求,只不过返回的响应中没有具体的内容,用于获取报头POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。PUT从客户端向服务器传送的数据取代指定的文档的内容DELETE请求服务器删除指定的页面。CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。OPTIONS允许客户端查看服务器的性能。TRACE回显服务器收到的请求,主要用于测试或诊断。 常见的请求头 请求头作用CookieCookieUser-Agent浏览器名称Referer页面跳转处Host主机和端口号Connection链接类型Upgrade-Insecure-Requests升级为 HTTPS 请求Accept传输文件类型Accept-Encoding文件编解码格式x-requested-with : XMLHttpRequestajax 请求点击查看更多:CriseLYJ/Python-crawler-tutorial-starts-from-zero 或是掘金文章:关于常用的http请求头以及响应头详解
点击查看更多关于响应头内容:CriseLYJ/Python-crawler-tutorial-starts-from-zero 或是掘金文章:关于常用的http请求头以及响应头详解 点击查看更多关于响应状态码内容:百度百科-HTTP状态码
HTTP + SSL (安全套接字层),即带有安全套接字层的超本文传输协议,默认端口号:443,HTTP为默认80
HTTPS 作用 在传输过程中对数据进行加密,防止中间路由器、交换机等中间的路由设备对数据进行篡改。HTTPS工作流程 HTTP 与 HTTPS 优缺点 HTTP 因为不需要对数据进行加密所以性能更高,但是安全性差。HTTPS 虽然安全性高,但是因为浏览器和服务器端需要对数据进行加解密,所以占用服务器资源。目前 HTTPS 是未来主流,微信小程序,iOS 客户端,android 客户端的接口提供都需要 HTTPS 接口支持。 更多可以查看:https和http的主要区别
个人博客:Loak 正 - 关注人工智能及互联网的个人博客 文章地址:Python爬虫(一)—爬虫的预备知识(爬虫概念、HTTP与HTTPS、请求与响应)