IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 爬虫前置_HTTP基础 -> 正文阅读

[网络协议]爬虫前置_HTTP基础

URI, URL 与 URN

URI

* URI: 全称 Uniform Resource Identifier, 即统一资源标识符, 用来在互联网上唯一的标识某一特定的资源
* URI包含两个子集: URL 和 URN

URN

* URN: 全称 Universal Resource Name, 即统一资源名称, 只描述资源的名称, 而不定位 (很少使用)
	例如: urn:isbn:0451450523 指定了一本书的ISBN, 可以唯一标识一本书, 但不能定位这本书的资源

URL

* URL: 全称Universal Resource Locator, 即统一资源定位符, 用来在互联网上唯一的定位某一特定的资源
	例如: https://github.com/favicon.ico  定位到

URL的结构

scheme://[username:password@]hostname[:port][/path][;parameters][?query][#fragment]
* scheme: 协议, 常见协议有http, https, ftp等
* username, password: 用户名和密码, 有些URL需要指定用户名和密码才能访问
* hostname: 主机地址, 可以是域名或IP地址, 用于在网络中唯一标识一台主机
* port: 端口, 用于在一台主机上唯一标识一个程序
	http协议默认端口80, https协议默认端口443
* path: 路径, 即指定的资源在服务器上的目录地址
* parameter: 参数, 用来指定访问某个资源是的附加信息 (很少使用)
* query: 查询, 用来携带查询相关数据, 是现在常用的携带get请求参数的方式
	query以键值对的形式出现, 多个键值对以&分隔, 例如: ?wd=nba&ie=utf-8
* fragment: 片段, 是对资源描述的部分补充, 可以用作单页面路由, 也可以用作HTML锚点

HTTP与HTTPS

HTTP

HTTP全称 Hypertext Transfer Protocol, 即超文本传输协议, 规定了服务端和浏览器之间交换数据的格式和规则

HTTP版本及特点

版本产生事件主要特点发展现状
HTTP0.91991年不涉及数据报传输, 规定通信格式, 只能使用GET请求没有作为正式标准
HTTP1.01996年内容格式不限, 增加PUT, PATCH, HEAD, OPTIONS, DELETE作为正式标准
HTTP1.11997年持久连接, 节约带宽, HOST域, 管道机制, 分块传输编码正式作为标准并广泛应用
HTTP2.02015年多路复用, 服务器推送, 头信息压缩, 二进制协议等逐渐覆盖市场

HTTPS

* HTTPS: 全称 Hypertext Transfer Protocol over Secure Socket Layer, 是建立在SSL层基础之上的安全版的HTTP协议
* 该协议传输的内容都是经过SSL加密的
* SSL会建立一个信息安全通道, 保证数据传输的安全性
* SSL可以确认网站的真实性

HTTP请求

HTTP请求格式

* 请求首行(HTTP协议版本信息, 当前请求方式, URL等)\r\n
* 请求头(键值对)\r\n
* \r\n
* 请求体(get请求体为空, post请求为提交的数据)\r\n

请求方式

请求及描述

方法描述
GET请求页面并返回页面内容
HEAD类似于GET请求, 但没有响应的内容, 用于获取报头
POST用于提交表单或上传文件, 数据包含在请求体中
PUT用客户端发送的数据替代文档中的内容
DELETE请求服务器删除指定页面
CONNECT让服务器代替客户端访问其它网页
OPTIONS允许客户端查看服务器性能
TRACE回显服务器收到的请求, 用于测试或诊断

常用请求方式

* 常见的请求方式有: GET请求 和 POST请求
* 在浏览器地址栏输入网址并按回车, 就会发送一个GET请求
* 在登录页面填写用户名密码, 并点击登录按钮, 就会发送一个POST请求

GET请求与POST请求的区别

* GET请求的参数包含在URL中, 可以在地址栏看到, POST请求的参数包含在请求体中, 无法直接看到
* GET请求提交的数据最多1024字节, POST请求提交的数据没有大小限制

常见的请求头信息

* Accept: 指定客户端可以接受哪些类型的信息
* Accept-Langluage: 指定客户端可以接受的语言类型
* Accept-Encoding: 指定客户端可以接受的编码
* Host: 被请求的主机的IP和端口号, 即服务器或网管的位置
* Cookie: 服务器发送过来, 存储在浏览器本地的状态信息, 用于判断用户状态
* Referer: 标识请求是从哪个页面发过来的, 用于来源统计和防盗链
* User-Agent: 客户端使用的操作系统版本, 浏览器版本等信息, 通常是最简单的反爬机制
* Content-Type: POST请求携带的数据的类型

Content-Type与POST请求提交数据数据

Content-TypePOST提交数据的方式
application/x-www-form-urlencoded表单数据
multipart/form-data表单文件上传
application/jsonjson数据
text/htmlXML数据

HTTP响应

HTTP响应格式

* 响应首行(HTTP协议版本信息, 响应状态码)\r\n
* 响应头(键值对)\r\n
* \r\n
* 相应体(与请求对应的HTML页面)\r\n

响应状态码

状态码说明详情
100继续服务器已接收到请求的一部分, 正在等待其余部分
101切换协议请求者要求服务器切换协议, 服务器已确认并准备切换
200成功服务器已唱功处理了请求
201已创建请求成功, 并且服务器创建了新的资源
202已接收服务器已接收请求, 但尚未处理
203非授权信息服务器成功处理了请求, 但返回的信息可能来自另一个源
204无内容服务器处理了请求, 但没有返回内容
205充值内容服务器成功处理了请求, 内容被重置
206部分内容服务器成功处理了部分请求
300多种选择针对请求, 服务器可执行多种操作
301永久移动请求的网页已永久移动到新位置, 即永久重定向
302临时移动请求的网页暂时跳转到其它页面, 即暂时重定向
303查看其它位置如果原来的请求时POST, 重定向目标文档应该通过GET提取
304未修改此次请求返回的网页未经修改, 继续使用上次的资源
305使用代理请求这应该使用代理访问该网页
307临时重定向临时从其它位置响应请求的资源
400错误请求服务器无法解析该请求
401未授权请求没有进行身份验证或验证未通过
403禁止访问服务器拒绝此请求
404未找到服务器找不到请求的网页
405方法禁用服务器禁用了请求中指定的方法
406不接收无法使用请求的内容响应请求的网页
407需要代理授权请求者需要使用代理授权
408请求超时服务器请求超时
409冲突服务器在完成请求时发生冲突
410已删除请求的资源已永久删除
411需要有效长度服务器不接收不含有效内容长度标头字段的请求
412未满足前提条件服务器未满足请求者在请求中设置的某一个前提条件
413请求实体过大请求实体过大, 超出服务器的处理能力
414请求URI过长请求网址过长, 服务器无法处理
415不支持类型请求格式不被请求页面支持
416请求范围不符页面无法提供请求的范围
417未满足期望值服务器未满足期望请求标头字段的要求
500服务器内部错误服务器遇到错误, 无法完成请求
501未实现服务器不具备完成请求的能力
502错误网关服务器作为网关或代理, 接收到上游服务器的无效响应
503服务不可用服务器目前无法使用
504网关超时服务器作为网关或代理, 没有及时从上游服务器接收到响应
505HTTP版本不支持服务器不支持请求中使用的HTTP协议版本

常见响应头信息

响应头包含了服务器对请求的应答信息, 常见响应头信息如下:
* Date: 响应产生的日期
* Last-Modified: 响应资源的最后修改时间
* Content-Encoding: 响应内容使用的编码
* Server: 服务器信息, 如名称, 版本号等
* Content-Type: 响应文档的类型, 比如text/html表示HTML文档, application/x-javascript表示JavaScript文件, Image/jpeg表示图片文件
* Set-Cookie: 告诉浏览器将此内容保存在本地Cookie中, 下次请求时带上此Cookie信息
* Expires: 过期时间

响应体

响应体是服务器依据请求返回给浏览器的真正的内容信息, 是爬虫爬取的目标, 其内容可能是HTML文档, json数据, 或其它多媒体文档等

HTTP相关书籍推荐

  • 《计算机网络》
  • 《图解HTTP》
  • 《HTTP权威指南》
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:25:33  更:2022-01-29 23:27:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:55:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码