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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络协议的从0到1——HTTP和HTTPS -> 正文阅读

[网络协议]网络协议的从0到1——HTTP和HTTPS

网络协议概述

? 网络协议是连接客户端和服务器端的桥梁。学习与网络协议相关的知识,能够让我们对网络通信过程以及通信所需条件有一个全面的认识,可以帮助我们提升爬虫技术或者设计出更有效的反爬虫方案。

? 常见的网络协议有HTTP协议、web socket协议、FTP协议、SSH协议和View-Source协议等

一、认识HTTP

? 当客户端与Web服务器进行交互时,就存在Web请求,这种请求都基于统一的应用层协议交互数据。

? HTTP即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它是万维网交换信息的基础。它允许将HTML文档从Web服务器传送到Web浏览器

1.1HTTP协议的特点

  • 简单快速:客户向服务器请求服务时,只需传输请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快
  • 灵活:HTTP允许传输任意类型的数据对象,正则传输的类型由Content-Type加以标记
  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间
  • 无状态:无状态是指协议对于事务处理没有记忆能力。后续如果需要前面的信息,则必须重新传送,这样就导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答比较快。

1.2请求和响应

? HTTP请求分成三个部分,分别是请求行(请求方法)、请求头(消息报头)和请求正文。请求头和请求正文之间是一个空行,这个空行表示请求头已经结束。

? 与HTTP请求对应的HTTP响应也是由三部分内容组成:响应行、响应头和响应正文。

? HTTP的请求方式非常多,其中POST和GET最常见

  • GET:用于获取请求页面的指定信息(以实体格式)
  • POST:与GET类似,但是GET没有请求内容而POST有请求内容。POSY请求最多用于向服务器发送大量数据,且POST的安全性相对高一些
  • HEAD:服务器不能在响应里返回消息主体,此方法常被用来测试超文本连接的有效性、可访问性和最近的改变。攻击者在编写扫描工具时,常用HEAD,因为之测试资源是否存在,而不用返回消息主题,所以速度是最快的。
  • PUT:用于请求服务器把请求中的实体存储在请求资源下,如果请求资源已经在服务器中存在,那么将会用此请求中的数据替换原先的数据,作为指导资源的最新修改版。如果请求指定资源不存在,将会创建这个资源,且数据位请求正文
  • DELETE:删除文件
  • TRACE:回显服务器收到的请求,主要用于测试或者诊断
  • CONNECT:通常用于SSL加密服务器的链接
  • OPTIONS:用于请求获得URI标识的资源在请求/响应的通信过程中可以使用的功能选项,通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。

1.3GET和POST的区别

  • GET的 提交的数据包放置url之后,POST放置在HTTP包中的body中
  • GET提交的数据大小有限制;而POST方法提交的数据没有限制
  • GET方式需要使用REquest.Querystring来取得变量的值;POST通过Request.From来获取变量的值
  • GET方式提交的数据会带来安全问题,比如一个登录页面用户名和密码会出现在URL上

1.4响应状态码

响应状态共有五种

  1. 1xx代表信息响应类,表示接收到请求并且继续处理,这类响应是临时响应
  2. 2xx代表处理成功响应类,表示动作被成功接收、理解和接受
  3. 3xx表示重定向响应类,为了完成指定的动作,必须接受进一步处理
  4. 4xx表示客户端错误,表示客户请求包含语法错误或者不能正确执行的请求
  5. 5xx代表服务器端错误,服务器不能正确执行一个正确的请求

爬虫工程师通常根据响应状态码判断本次请求的状态,并决定后续的处理逻辑。常见的状态码有:

200:服务请求成功
301:请求的网页永久移动到新位置,永久重定向
302:临时重定向
404:请求资源不存在
400:客户端请求有语法错误,不能被服务器所理解
401:请求未经授权
403:服务器接收到请求,但是拒绝服务
500:服务器内部错误
503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

1.5发起HTTP请求

? HTTP协议遵循传统的客户端-服务端模型,客户端打开链接以发出请求,等待服务器端响应。

image-20220417155118213

? 借助浏览器可以快速发起一次HTTP请求,如果不借助浏览器也可以借助其他工具发起请求,例如:Linux系统中的curl命令,在Windows中也可以使用curl.exe工具发起请求,通过curl+URL命令即可简单的发起一个HTTP请求。(但是Windows不自带工具,需要下载)

? 此时脱离了浏览器来获取服务器的响应和HTML数据,可以发现,浏览器在HTTP协议方面只不过多了HTML渲染功能,让用户看到更为直观的页面。

image-20220417155432590

1.6Cookie

? 是HTTP是无状态特性促进了cookie的产生,HTTP协议对于事物处理没有记忆能力,缺少状态意味着如果服务器需要和客户端进行多次交互,那么客户端必须在每一次交互时都主动提交身份信息。面对这个问题,人们想出来俩种能够保持HTTP链接状态的技术:cookie和session。

? cookie可以理解为在HTTP协议下,服务器或其他脚本语言维护客户端信息的一种方式,是保存在客户端的文本文件,cookie中往往包含客户端或者用户的相关信息。

产生过程

? 在正常情况下,Cookie可以由服务器端或者JS代码设定。在客户端第一次向服务器端发起请求之前,客户端,或者客户端工具在渲染页面时,由页面中的JS代码生成Cookie值。

? 服务器生成cookie值并将其添加到响应头返回给浏览器,浏览器检测到响应头中的Set-Cookie头后将对应的cookie值保存起来,而后每一次请求都会带对应的cookie,除非cookie过期或被清除。

image-20220417165711266

二、HTTPS

? HTTPS协议的以安全为目标的HTTP通道,HTTPS的安全基础是SSL,即在HTTP下加入SSL层。也就是HTTPS通过安全传输机制进行传送数据,这种机制可保护网络传送的所有数据的隐秘性和完整性,可以降低非入侵性拦截攻击的可能性。

? SSL协议依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。SSL协议提供的服务主要有:

  • 认证客户端和服务器端,确保数据发送到正确的地方
  • 加密数据,防止数据中途被窃取
  • 维护数据的完整性,确保数据在传输过程中不被改变

2.1HTTP和HTTPS的区别主要有:

  • HTTP协议不需要证书,而HTTPS需要CA申请证书,大部分证书不免费
  • HTTP是超文本传输协议,信息以明文方式传输;HTTPS则是具有安全性的SSL加密传输协议
  • HTTP和HTTPS协议使用的是完全不同的连接方式,所用端口也不一样,HTTP是80端口,HTTPS是443端口
  • HTTP协议的连接很简单而且是无状态的;HTTPS协议是由SSL协议构建的可进行加密传输、身份认证的网络协议,也是无状态的
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:17:01  更:2022-05-21 19:17:05 
 
开发: 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年5日历 -2024/5/19 11:41:29-

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