HTTP和HTTPS 的作用和应用场景 (python 爬虫简单入门)

  1.   HTTP和HTTPS

  1.   HTTP

  HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。

  • HTTP的端口号为80

  1.   HTTPS

  HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。

  SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。

  • HTTPS的端口号为443

  1.   请求与响应

  HTTP通信由两部分组成: 客户端请求消息服务器响应消息

  1.   浏览器发送HTTP请求的过程:

  1. 当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。

  2. 当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。

  3. 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。

  4. 当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了

  1.   URL

  URL(Uniform / Universal Resource Locator的缩写):统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。

  基本格式:scheme://host[:port#]/path/…/[?query-string][#anchor]

  • scheme:协议(例如:http, https, ftp)

  • host:服务器的IP地址或者域名

  • port#:服务器的端口(如果是走协议默认端口,缺省端口80)

  • path:访问资源的路径

  • query-string:参数,发送给http服务器的数据

  • anchor:锚(跳转到网页的指定锚点位置)

  • http://item.jd.com/11936238.html#product-detail

  1.   请求方法

序号

方法

描述

1

GET

请求指定的页面信息,并返回实体主体。

2

POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

3

PUT

从客户端向服务器传送的数据取代指定的文档的内容。

4

DELETE

请求服务器删除指定的页面。

...

...

...

  HTTP请求主要分为GetPost两种方法

  • GET是从服务器上获取数据,POST是向服务器传送数据

  • GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的参数来产生响应内容,即“Get”请求的参数是URL的一部分。 例如: http://www.baidu.com/s?wd=Chinese

  • POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等),请求的参数包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码,

  注意:避免使用Get方式提交表单,因为有可能会导致安全问题。 比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。

  1.   响应状态码

  响应状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

  常见状态码:

  100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。

  200~299:表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功)。

  300~399:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、常用302(所请求的页面已经临时转移至新的url)、307和304(使用缓存资源)。

  400~499:客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够)。

  500~599:服务器端出现错误,常用500(请求未完成。服务器遇到不可预知的情况)。

  1.   robots协议

  https://www.baidu.com/robots.txt

  1.   requests的使用

  1.   安装方式

pip install requests

  1.   简单入门

# 导入requests模块 import requests # 发起get请求 response = requests.get("https://www.baidu.com/") # 设置字符集 response.encoding ="utf-8" # print(response.apparent_encoding) # 推测更加准确的编码格式 response.encoding = response.apparent_encoding print(response.text)

  1.   GET请求

import requests headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"} # params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode() response = requests.get("http://www.baidu.com",headers=headers) ressponse.encoding = "utf-8" # 查看响应头部字符编码 print(response.apparent_encoding) # 查看响应内容,response.text 返回的是Unicode格式的数据 response.encoding = response.apparent_encoding print(response.text) # 查看响应内容,response.content返回的字节流数据 print(response.content) # 查看完整url地址 print(response.url) # 查看响应码 print (response.status_code)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/2704.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java多线程编程(三)一>详解synchronized, 死锁,wait和notify

目录: 一.synchronized 的使用: 二. 常见死锁情况: 三 .如何避免死锁: 四.wait和notify 一.synchronized 的使用: 我们知道synchronized锁具有互斥的特点: synchronized 会起到互斥效果, 某个线程…

linux入门——“初识make”

make是linux中的自动化构建工具,一般来说系统会自带make,如果没有,那么可以使用命令“sudo apt install -y make”来安装。 1.初识make make使用的前提是维护makefile/Makefile文件,需要在自己的目录下自己创建。 我在此目录下创…

【K8S系列】Kubernetes 中 Pod 无法通过 Service 名称访问服务的 DNS 解析失败问题【已解决】

在 Kubernetes 中,Service 提供了一种稳定的方式,通过名称访问一组 Pod。当其他 Pod 无法通过 Service 名称访问服务,并且出现 DNS 解析失败时,通常会导致应用无法正常工作。本文将详细分析此问题的常见原因及其解决方案。 一、问…

关于分布式事务,你知道多少?如何落地?

很多人估计会说,我在项目中完全没有涉及到过分布式事务,而面试官老喜欢问,真TM烦! 本文就来聊聊分布式事务,有哪些方案和实现。文章有点长,可以先收藏,有时间了慢慢看。 什么是事务?…

SIwave:释放 Resonant Mode Solver 的强大功能

SIwave 是一种电源完整性和信号完整性工具。本文的重点是 Resonant 模式求解器。 进行谐振计算的主要原因是确定 Powerplane 中 Cap 去耦的最佳位置。Powerplane 的大小由最大预期电流和允许的最大电压降决定。然而,即使是最好的设计也没有足够的电容来将宽带频谱的…

【VS+QT】联合开发踩坑记录

0. 写在前面 因为目前在做自动化产线集成软件开发相关的工作,需要用到QT,所以选择了VS联合开发,方便调试。学习QT的过程中也踩了很多坑,在此记录一下,提供给各位参考。 1. 环境配置 Win11Visual Studio 2019Qt 5.12…

【LeetCode】每日一题 2024_11_1 超级饮料的最大强化能量(DP)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动! 题目:超级饮料的最大强化能量 代码与解题思路 先读题: 题目给了两个数组,长度为 n,题目要求在 n 个小时内选择饮料,一个小时可以选一瓶&#x…

IBM服务器修改IMM的IP方法

服务器设备:IBM x3550 M4 Server IMM默认IP地址:192.168.70.125 用户名:USERID 密码:PASSW0RD(注意是零0) 1.服务器开机按F1进入BIOS界面 2.进入System Settings 3.进入Integrated Management Module 4.…

【MATLAB代码】一维UKF的IMM,模型有CV和CA

目录 ​编辑 代码介绍 主要功能 UKF 更新函数 总结 代码介绍 这段 MATLAB 代码实现了一维无迹卡尔曼滤波(UKF)与交互多模型(IMM)结合的算法,旨在对非线性动态系统进行状态估计。代码中的模型包括恒速&#xff08…

Java对象、类、接口——针对实习面试

目录 Java对象、类、接口你知道类和对象的区别吗?抽象类和接口有什么共同点?抽象类和接口有什么区别?说一下面向对象的三大特征及其特点?你知道Java中方法重载和重写的区别吗?静态成员和非静态成员有什么区别&#xff…

Solana链上的Pump狙击机器人与跟单机器人的工作原理及盈利模式

随着加密货币市场的快速发展,越来越多的投资者和开发者开始关注Solana链上的自动化交易工具。尤其是Pump狙击机器人和跟单机器人,这两种工具为用户提供了在市场波动中获取利润的机会。本文将深入分析这两种机器人的工作原理及其盈利模式。 一、Pump狙击机…

Vue全栈开发旅游网项目(6)-接口开发

1.景点详情接口开发 1.设计响应数据结构 文件地址:sight/serializers.py 创建类: class SightDetailSerializers(BaseSerializer):#景点详情def to_dict(self):obj self.objreturn {id: obj.id,name: obj.name,desc: obj.desc,img: obj.banner_img.…

Flutter学习笔记(二)------ 第一个flutter项目

一、Dart语法 dart语法较为简单,学过python和c后发现大同小异。不过多介绍 1.函数可变参数 可以类比*args, **kwargs,与之不同的是dart中,*args **kwargs不能同时存在 void a(int a, [float x, double b0.0]) {//do something... }a(10, …

MySQL-如果你在添加外键时忘加约束名,如何找到系统默认的约束名

问题 在你添加约束的时候,一般都会为其取名以方便后期的修改,但是如果你忘记了呢,如何找到系统默认的约束名 解决方法 -- 查找约束名 SELECTCONSTRAINT_NAME FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERETABLE_NAME emp ANDREFERENCED_T…

2-Ubuntu/Windows系统启动盘制作

学习目标: 掌握使用Win32DiskImager、Rufus等工具制作系统启动盘的基本步骤。独立将ISO镜像文件写入USB闪存驱动器,确保在需要时顺利安装或修复系统。通过学习如何选择正确的源文件和目标驱动器,理解启动盘的使用场景和注意事项,…

上云管理之Git/GitHub/GitLab 详解(一)

上云管理之Git/GitHub/GitLab 详解(一) 引言1. GIT软件安装2.初始化配置与提交代码2.1. 初始化配置2.2 本地仓库代码提交2.2.1 初始化仓库并提交代码2.2.2 再次提交已修改的代码2.2.3 文件夹层次结构代码提交 2.3 GIT 的文件状态 3.GIT 分支3.1. 分支的切换与删除3.…

【UltraVNC】使用反向连接方式-部署私有远程工具(简版)

一、简要介绍 反向连接:客户电脑发起连接到维修工程师电脑。 场景:计算机A 无公网IP ,计算机B无公网IP,AB直接进行远程的行为。 核心:借助中继方式 二、安装环境和安装包 中继器服务:linux系统安装包&…

技术分享 | 大语言模型赋能软件测试:开启智能软件安全新时代

在当今数字化时代,软件安全问题的严峻性日益凸显。随着网络攻击手段变得愈发复杂多样,切实保障软件系统的安全性已然成为开发者以及企业所面临的核心挑战。依据国际网络安全机构的相关报告,网络攻击事件的发生频率与复杂程度呈现出逐年递增的…

【图书管理与推荐系统】Python+Django网页界面+协同过滤推荐算法+网站系统

一、介绍 图书管理与推荐系统。使用Python作为主要开发语言。前端采用HTML、CSS、BootStrap等技术搭建界面结构,后端采用Django作为逻辑处理,通过Ajax等技术实现数据交互通信。在图书推荐方面使用经典的协同过滤算法作为推荐算法模块。主要功能有&#…

达梦asm创建磁盘组

达梦ASM磁盘组创建过程 安装dsc建库前需要配置asm磁盘组,通常编辑一个文件 vim /dm/dmdbms/config/create_asm_group.txt #asm script file create diskgroup ARCH asmdisk /dev/asmdisk/dsc_asm1 create diskgroup DATA asmdisk /dev/asmdisk/dsc_asm2 alter di…