03. HTTP协议

2023-11-14

目录

HTTP协议

基本概念

请求:

响应:

请求头中最常见的⼀些重要内容(爬虫需要):

响应头中⼀些重要的内容:

请求方式:

总结


HTTP协议


基本概念

协议: 就是两个计算机之间为了能够流畅的进行沟通而设置的⼀个君子协定。常见的协议有TCP/IP,SOAP协议,HTTP协议,SMTP协议等等.....

HTTP: Hyper Text Transfer Protocal 超文本传输协议,即浏览器和服务器之间数据交互遵守的协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。

HTTP协议把一条消息分为三大块内容,无论请求还是响应都是三块内容

请求:

请求行 -> 请求方式(get/post)请求url地址、协议

请求头 -> 放一些服务器要使用的一些附加信息

请求体 -> 一般放一些请求参数

响应:

状态行 -> 协议 状态码

响应头 -> 放一些客户端要使用的一些附加信息

响应体 -> 服务器返回的真正客户端要用的内容(HTML/json等)

后面我们写爬虫的时候要格外注意请求头和响应头,这两个地方通常都隐含着一些重要的内容。

 


请求头中最常见的⼀些重要内容(爬虫需要):

1. User-Agent : 请求载体的身份标识(用啥发送的请求)
2. Referer: 防盗链(这次请求是从哪个页面来的? 反爬会用到)
3. cookie: 本地字符串数据信息(用户登录信息, 反爬的token)

响应头中⼀些重要的内容:

1. cookie: 本地字符串数据信息(用户登录信息, 反爬的token)
2. 各种神奇的莫名其妙的字符串(这个需要经验了, ⼀般都是token字样, 防止各种攻击和反爬)

请求方式:

GET: 显示提交(查询)
POST: 隐示提交(更改)

总结

# HTTP: Hyper Text Transfer Protocal 超文本传输协议,即浏览器和服务器之间数据交互遵守的协议
# HTTP把一条消息分为三大块内容,请求和响应都是三大块内容
# 请求:请求行(请求方式get/post、请求url地址、协议)、请求头(服务器使用的附加协议)、请求体(请求参数)
# 响应:状态行(协议、状态码)、响应头(客户端使用的附加协议)、响应体(服务器返回的客户端真正需要的内容如html,json等)

# 请求头中常见的一些重要内容(爬虫需要):
# User-Agent(UA):请求载体的身份标识(用什么发送的请求)
# Referer:防盗链(这次请求是从哪个页面来的?反爬会用到)
# cookie:本地字符串数据信息(用户登录信息,反爬的token)

# 响应头中常见的一些重要内容:
# cookie:本地字符串数据信息(用户登录信息,反爬的token)
# 各种神奇的莫名其妙的字符串(需要经验,一般都是token字样,防止各种攻击和反爬)

# 请求方式
# GET: 显示提交(查询等)
# POST: 隐示提交(更改等)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

03. HTTP协议 的相关文章

  • 如何解决 302 重定向上的 POST 更改为 GET 的问题?

    我网站的某些部分只能通过 HTTPS 访问 不是整个网站 安全与性能妥协 并且如果通过纯 HTTP 发送请求 则 HTTPS 是通过对安全部分的请求进行 302 重定向来强制执行的 问题是对于所有主流浏览器来说 如果您在 POST 上执行
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 当查看 X-Auth-Token 与 Authorization 标头之间的差异时,哪个是首选?

    下面两个标题有什么区别 哪一个是首选 X Auth Token dadas123sad12 Authorization Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ Authorization是客户端使用的主要标头认证如
  • Node.js 上的 Connect 出现“无法 GET /”

    我正在尝试使用以下方式开始提供一些静态网页connect像这样 var connect require connect var nowjs require now var io require socket io var app conne
  • 如何向 node-http-proxy 响应添加标头

    我需要在第三方服务上解决CORS 所以我想构建一个代理来添加标头 Access Control Allow Origin 为什么这段代码没有添加标题 httpProxy require http proxy var URL https th
  • 在防火墙后面使用 GitHub,无需 SSH 访问

    我真的很想使用 GitHub 但我的公司一切都被锁定了 现在 我只能通过HTTP协议使用Tortoise SVN 我可以以同样的方式使用 GitHub 吗 如果是这样 怎么办 我认为你一直能够克隆github https github co
  • Django:如何测试“HttpResponsePermanentRedirect”

    我正在为我的 django 应用程序编写一些测试 在我看来 它使用 HttpResponseRedirect 重定向到其他一些网址 那么我该如何测试呢 姜戈TestCase类有一个方法assertRedirects https docs d
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • Unicorn + Rails + 大型上传

    我试图在使用 Rails 在 Heroku 上运行 Unicorn 时允许进行大型上传 但我意识到任何大型上传可能需要比 Unicorn 工作线程的超时时间更长的时间 这意味着 我见过这种情况发生 Unicorn 主进程将杀死上传大文件的工
  • 从套接字读取 C HTTP

    我想知道如何判断是否已从套接字接收到所有数据 这是一个简单的网络代理 现在我正在处理请求部分 所以发送的内容应该以 r n r n 结尾 我不知道请求会持续多久 我在这里读过一些帖子 说我应该检查读取函数是否返回 0 但其他人说0只在客户端
  • golang中默认的HTTP拨号超时值

    我正在运行 golang http 客户端来对服务器进行压力测试 有时我会收到错误 拨号 tcp 161 170 xx xxx 80 操作超时 错误 我认为这是 HTTP 客户端超时 我正在考虑增加超时值https stackoverflo
  • Java Servlet 中限制 HTTP 请求

    在 java servlet 中 如何根据客户端的 IP 地址限制来自用户的 http 请求 我不想每秒处理来自特定源 IP 地址的超过 X 个请求 其中 X 是可配置的并且具有 0 1 中的实际值 10 范围 从 10 秒内 1 个请求到
  • 如何知道 HTTP 服务器何时完成发送数据

    我正在开发一个面向浏览器 代理的项目 我需要下载网页 向 Web 服务器发送自定义 HTTP 请求后 我开始监听服务器响应 读取响应时 我检查响应标头中的 Content Length row 如果我得到其中之一 很容易确定服务器何时完成发
  • HTTP 接受“级别”?

    我一直在阅读HTTP 1 1 标头 http www w3 org Protocols rfc2616 rfc2616 sec14 html sec14 1在第 14 1 节 接受 的一些示例标头中 他们使用accept extension
  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • 通用开源 REST 客户端? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用意图过滤器从 URL 打开 Android 应用程序不起作用

    我有一个 Android 应用程序 人们用它来替代网站 因此 当用户遇到网站的 URL 时 我想为他们提供在我的应用程序中而不是在浏览器中 打开 URL 的选项 换句话说 我希望出现弹出窗口 让他们在我的应用程序和浏览器 可能还有其他应用程
  • Tomcat 7 停止接收 HTTP 请求

    我有一个Tomcat 7接收大量数据的服务器GET 要求 这种方法在一段时间内效果很好 然后突然停止工作 7 8 小时后 当它停止工作时 我收到此错误 五月 06 2015 12 47 58 AM org apache coyote htt
  • Angular2 http.post 被执行两次

    我遇到一个奇怪的问题 Angular2 的 RC1 Http 服务执行 http post 调用两次 我已经调试了我的应用程序 并且我知道这不是点击事件问题 导致核心服务调用的所有调用 public create json Object p
  • Spring Security (3.2.5) HTTP POST 身份验证后不转发到原始请求

    我有一个示例 Spring MVC 应用程序 由 Spring security Spring 版本 4 0 1 RELEASE Spring security 3 2 5 RELEASE 保护 当我作为未经身份验证的用户发送 HTTP G

随机推荐

  • web前端技术练习题

    选择题 1 以下哪个不属于Web前端开发的核心技术 A HTML C JavaScript B CSS D Java 2 关于HTML说法错误的是 A HTML标签的嵌套结构可以描述成一个网状结构 B 在 title 和 title 标签之
  • C语言字符型数据(一)—简单的恺撒密码

    首先声明 这些内容主要是面向C语言的初学者 尤其是正在学习C语言的学生 学习C语言的字符型数据时 首先需要记住两条重要特性 1 字符型数据存储的是字符的ASCII码值 2 由于ASCII码值本质上是一个整数 因此字符型数据可以像整数一样做加
  • MySQL行级锁、表级锁、页级锁详细介绍

    页级 引擎 BDB 表级 引擎 MyISAM 理解为锁住整个表 可以同时读 写不行行级 引擎 INNODB 单独的一行记录加锁 表级 直接锁定整张表 在你锁定期间 其它进程无法对该表进行写操作 如果你是写锁 则其它进程则读也不允许行级 仅对
  • python学习 - 存钱问题

    问题描述 父亲准备为小龙的四年大学生活一次性储蓄一笔钱 使用整存零取的方式 控制小龙每月月初取1000元准备这个月使用 假设银行整存零取的年息为1 71 请算出父亲至少需要存入多少钱才行 问题分析 这个问题是一个典型的递推问题 分析存钱和取
  • 蓝牙协议栈实现模式分析

    蓝牙协议栈实现模式分析 广州大学信息与机电工程学院 510405 邹艳碧 广州大学理学院 510405 吴智量 广州大学信息与机电工程学院 510405 李朝晖 摘要 蓝牙技术是未耒无线通信的一个重要的研究方向 本文主要介绍了蓝牙 技术的体
  • Matlab 仿真BPSK调制下传输的误码率

    BPSK Binary Phase Shift Keying 把模拟信号转换成数据值的转换方式之一 利用偏离相位的复数波浪组合来表现信息键控移相方式 我们可以用Matlab仿真其传输误码率 m文件内容如下 传输1000000个码 随机 1
  • 基于java springboot vue仓库管理系统源码(毕设)

    开发环境及工具 大于Jdk1 8 大于mysql5 5 idea eclipse vscode webstorm 技术说明 Springboot mybatis vue elementui 代码注释齐全 没有多余代码 适合学习 毕设 二次开
  • 优雅地测试Exception:@Rule

    使用 Rule测试Exception 导入库 import org junit Rule import org junit rules ExpectedException 声明错误期望对象 Rule public ExpectedExcep
  • javaweb项目总结思路

    JAVAweb项目思路指南 本次项目所用技术 第一章 需求 系统用户模块 员工管理模块 系统权限功能 第二章 数据库设计 创建数据库 用户表 员工表 第三章 架构选择 第四章 搭建系统开发 搭建系统开发环境 编写实体类 编写user实体类
  • 类和对象【默认成员函数】

    全文目录 类的6个默认成员函数 构造函数 特性 析构函数 特性 拷贝构造函数 特性 赋值运算符重载 运算符重载 赋值运算符重载 前置 和 后置 const 成员 取地址及const取地址操作符重载 类的6个默认成员函数 每个类不管有没有内容
  • Java进阶01:Hibernate教程

    1 什么是Hibernate Hibernate是一个开放源码的ORM Object Relational Mapping 对象关系映射 框架 它对JDBC进行了轻量级的封装 使得Java开发人员可以使用面向对象的编程思想来操作数据库 2
  • FISCO BCOS 和 WeBASE-Front 搭建联盟链

    一丶环境依赖 安装ubuntu依赖sudo apt install y openssl curl 安装centos依赖sudo yum install y openssl openssl devel 二丶创建操作目录cd mkdir p f
  • HTML案例设计(用户信息提交表单)

    最近学习了HTML语法知识 详见内容请戳此次HTML基础知识 遂做了此前端界面 比较简略 但是算对Web开发有了初步的认识 先放效果图出来 你的三连就是我创作的动力 HTML代码 本次知识点将会不定期补充 div align center
  • 智能学习

    智能学习 MATLAB实现CS BP多变量时间序列预测 布谷鸟搜索算法优化BP神经网络 目录 智能学习 MATLAB实现CS BP多变量时间序列预测 布谷鸟搜索算法优化BP神经网络 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍
  • HTML静态页面获取url参数和UserAgent

    目录 前言 原因 解决 1 静态页面获取url的参数 2 取useragent的值 3 测试页面 前言 接技术支持小伙伴信 有用户反馈app在华为设备上下载不了 以为是服务器覆盖的范围不够或服务器挂了 直到另一个客服同事发来一个录屏 基本知
  • 自己写ArrayList后的心得

    源码分析 ArrayList应该是Java工具类中最简单的一个 它的内部实现是一个数组 在首次加入元素时 ArrayList会创建一个默认大小的数组 之后的添加 删除 查询操作都是对该数组进行操作 而我自己写的ArrayList则是和Lin
  • 记录错误:FileNotFoundError: [WinError 3] 系统找不到指定的路径。: ‘E:\\CV_Paper_fuxian\\lesson\\B_VGG\\..\\Data\\tra

    撸代码发现错误 FileNotFoundError WinError 3 系统找不到指定的路径 E CV Paper fuxian lesson B VGG Data train 经过检查发现 是系统内文件夹名称设置错误 如果出现这样的错误
  • new与malloc

    1 属性 new delete是c 运算符 关键字 需要编译器支持 malloc free是库函数 需要头文件支持 2 参数 使用new操作符申请内存分配时无需指定内存块的大小 编译器会根据类型信息自行计算 而malloc需要显示的指出所需
  • java/php/net/python家庭财务管理系统设计

    本系统带文档lw万字以上 答辩PPT 查重 如果这个题目不合适 可以去我上传的资源里面找题目 找不到的话 评论留下题目 或者站内私信我 有时间看到机会给您发 管理员用例图 系统中的核心家庭是系统管理员 管理员登录后 通过管理员菜单来管理后台
  • 03. HTTP协议

    目录 HTTP协议 基本概念 请求 响应 请求头中最常见的 些重要内容 爬虫需要 响应头中 些重要的内容 请求方式 总结 HTTP协议 基本概念 协议 就是两个计算机之间为了能够流畅的进行沟通而设置的 个君子协定 常见的协议有TCP IP