万字详解HTTP协议面试必备技能
目录
一、HTTP 是什么
二、理解 "应用层协议"
2.1理解 HTTP 协议的工作过程
2.2HTTP 协议格式
2.3抓包工具的使用
2.4抓包工具的原理
2.5抓包结果
2.5.1HTTP请求
2.5.2HTTP响应
2.6协议格式总结
三、HTTP 请求 (Request)
3.1认识 URL
3.1.1URL 基本格式
3.1.2关于 URL encode
3.2认识 "方法" (method)
3.2.1 GET 方法
3.2.1.1使用 Fiddler 观察 GET 请求
3.2.2POST 方法
3.2.2.1使用 Fiddler 观察 POST 方法
3.3认识请求 "报头" (header)
3.3.1Host
3.3.2Content-Length
3.3.3Content-Type
3.4User-Agent (简称 UA)
3.4.1Referer
3.4.2Cookie
3.4.3理解登陆过程
3.5认识请求 "正文" (body)
四、HTTP 响应详解
4.1认识 "状态码" (status code)
4.1.1 200 OK
4.1.2 404 Not Found
4.1.3 403 Forbidden
4.1.4 405 Method Not Allowed
4.1.5 500 Internal Server Error
4.1.6 504 Gateway Timeout
4.1.7 302 Move temporarily
4.1.8 301 Moved Permanently
4.1.9状态码小结
五、认识响应 "报头" (header)
5.1Content-Type
六、认识响应 "正文" (body)
6.1 text/html
6.2text/css
6.3application/javascript
6.4application/json
七、通过 form 表单构造 HTTP 请求
7.1form 发送 GET 请求
7.1.1构造的 HTTP 请求
7.1.2体会 form 代码和 HTTP 请求之间的对应关系
7.2form 发送 POST 请求
7.2.1构造的 HTTP 请求
八、通过 ajax 构造 HTTP 请求
8.1发送 GET 请求
8.1.1浏览器和服务器交互过程(引入 ajax 后)
8.2发送 POST 请求
8.2.1发送 application/x-www-form-urlencoded 数据 (数据格式同 form 的 post)
8.2.2发送 application/json 数据
8.3封装 ajax 方法
8.4附录: ajax 测试服务器代码 (后面再讲解)
8.5通过 Java socket 构造 HTTP 请求
九、HTTPS
9.1HTTPS 是什么
9.1.1臭名昭著的 "运营商劫持"
十、"加密" 是什么
十一、HTTPS 的工作过程
11.1引入对称加密
11.2引入非对称加密
11.3引入证书
11.3.1查看浏览器的受信任证书发布机构
11.4完整流程
11.5总结
一、HTTP 是什么
HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议.
HTTP 诞生与1991年. 目前已经发展为最主流使用的一种应用层协议.
最新的 HTTP 3 版本也正在完善中, 目前 Google / Facebook 等公司的产品已经支持了.
HTTP 往往是基于传输层的 TCP 协议实现的. (HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP实现)目前我们主要使用的还是 HTTP1.1 和 HTTP2.0
我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的.
当我们在浏览器中输入一个 搜狗搜索的 "网址" (URL) 时, 浏览器就给搜狗的服务器发送了一个 HTTP 请求, 搜狗的服务器返回了一个 HTTP 响应.
这个响应结果被浏览器解析之后, 就展示成我们看到的页面内容. (这个过程中浏览器可能会给服务器发送多个 HTTP 请求, 服务器会对应返回多个响应, 这些响应里就包含了页面 HTML, CSS, JavaScript, 图片, 字体等信息).
所谓 "超文本" 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些其他的资源, 比如图片, 视频, 音频等二进制的数据.
二、理解 "应用层协议"
我们已经学过TCP/IP , 已经知道目前数据能从客户端进程经过路径选择跨网络传送到服务器端进程
[ IP+Port ].可是,仅仅把数据从A点传送到B点就完了吗?
这就好比,在淘宝上买了
相关文章:
万字详解HTTP协议面试必备技能
目录 一、HTTP 是什么 二、理解 "应用层协议" 2.1理解 HTTP 协议的工作过程 2.2HTTP 协议格式 2.3抓包工具的使用 2.4抓包工具的原理 2.5抓包结果 2.5.1HTTP请求 2.5.2HTTP响应 2.6协议格式总结 三、HTTP 请求 (Request) 3.1认识 URL 3.1.1URL 基本格式 …...
Debian跳过grub页面
nano /etc/default/grub将GRUB_TIMEOUT的值改为0 将GRUB_CMDLINE_LINUX_DEFAULT的值改为"quiet splash" 如果要禁用开局日志的话,将GRUB_CMDLINE_LINUX_DEFAULT的值改为"quiet splash loglevel0" update-grub...
【已解决】RuntimeError Java gateway process exited before sending its port number
RuntimeError: Java gateway process exited before sending its port number 问题 思路 🎯方法一 在代码前加入如下代码(如图): import os os.environ[‘JAVA_HOME’] “/usr/local/jdk1.8.0_221” # 记得把地址改成自己的 …...
数据结构与算法-循环链表、双向链表
我们这里接着上一篇单链表继续往下深入学习循环链表、双向链表。 链表 🎈3.循环链表🔭3.1循环链表的概念🔭3.2循环链表的基本操作🔎3.2.1创建空表🔎3.2.2插入操作🔎3.2.3删除操作 🎈4.双向链表&…...
javascript中依次输出元素并不断循环实现echarts柱图动画效果
循环来遍历数组并输出其中的元素 在JavaScript中,你可以使用循环来遍历数组并输出其中的元素。如果你想要依次输出6个元素并不断循环,可以使用如下的代码: let arr [/* 你的数组 */];for (let i 0; i < arr.length; i) {console.log(a…...
互联网Java工程师面试题·Memcached篇·第一弹
目录 1、Memcached 是什么,有什么作用? 1.1 memcached 服务在企业集群架构中有哪些应用场景? 1.1.1 作为数据库的前端缓存应用 1.1.2 作业集群的 session 会话共享存储 2、Memcached 服务分布式集群如何实现? 3、Memcach…...
git 详解-提升篇
git 冷门使用 承接上一篇 《git 进阶篇》,简单讲解 git 冷门使用方法。 码农常规使用工具 git 偶尔也有非常规操作。例如:提交代码时同事已经更新,但又不想回退本地补丁;或者已经提交补丁需要变更提交日志信息。 作者࿱…...
RPA的安全风险及应对策略
RPA已经深度革新了工作流程,大大提升效率并减少了人为错误,使企业运营更加高效。据预测,至2030年,全球RPA市场将以39.9%的复合年增长率持续发展,这显示了RPA对企业生产力的巨大推动力。 RPA能够承担人类的繁琐工作&am…...
数据结构与算法--贪心算法
数据结构与算法-贪心算法 1 贪心算法的概念 2 贪心算法的套路 3 贪心算法常用技巧 4 会议问题 5 字典序问题 1 贪心算法的概念 在某一标准下,优先考虑最满足标准的样本,最后考虑不满足标准的样本,最终得到一个答案的算法,叫做贪心算法 也就是说 不是从整体上加以考虑,所…...
【Unity3D】UGUI物体世界坐标转屏幕坐标问题
如题: UGUI物体世界坐标转屏幕坐标问题,获取UI(UGUI)屏幕坐标问题等相关问题 思路:必须使用Canvas身上的Camera,进行Camera.WorldToScreenPoint(UI物体的世界坐标Vector3),会返回一个Vector3(x,y,z),我们要…...
代码随想录二刷day51
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣309. 买卖股票的最佳时机含冷冻期二、力扣714. 买卖股票的最佳时机含手续费 前言 一、力扣309. 买卖股票的最佳时机含冷冻期 class Solution {public …...
接口自动化测试框架(pytest+allure+aiohttp+ 用例自动生成)
近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的,测试人员会希望很快能得到结果反馈,然而接口的数量一般都很多,而且会越来越…...
[Python入门教程]01 Python开发环境搭建
Python开发环境搭建 本文介绍python开发环境的安装,使用anaconda做环境管理,VS code写代码。搭建开发环境是学习的第一步,本文将详细介绍anaconda和vs code的安装过程,并测试安装结果。 视频教程链接:https://www.bil…...
第四章:最新版零基础学习 PYTHON 教程(第二节 - Python 数据类型—Python 字符串、列表、元组、迭代)
在在上一节文章中,我们了解了 Python 的基础知识。现在,我们继续了解更多 Python 概念。 Python 中的字符串: 字符串是字符序列,可以是字母、数字和特殊字符的组合。在Python中可以使用单引号、双引号甚至三引号来声明它。这些引号不是字符串的一部分,它们仅定义字符串…...
react框架与vue框架的区别
React和Vue都是前端开发中常用的框架,它们有一些不同的特性和优点。下面是它们的主要区别: 数据流和数据绑定:React是一种单向数据流的框架,而Vue则是双向数据绑定的框架。这意味着在React中,数据从组件的state属性流…...
C++_pen_静态与常量
成员 常成员、常对象(C推荐使用 const 而不用#define,mutable) const 数据成员只在某个对象生存周期内是常量,而对于整个类而言却是可变的(static除外) 1.常数据成员(构造函数初始化表赋值) c…...
ToDoList使用自定义事件传值
MyTop与MyFooter与App之间传递数据涉及到的就是子给父传递数据,MyList和MyItem与App涉及到爷孙传递数据。 之前的MyTop是使用props接收App传值,然后再在methods里面调用,现在使用自定义事件来处理子组件和父组件之间传递数据。 图是之前的…...
基于SSM的家庭财务管理系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...
OpenHarmony Trace的使用
背景: 近期很多开发者反馈OpenHarmony三方库Imageknife有性能问题:连续拖动很多张图片时,界面有明显的卡顿现象。 因为对这个三方库的源码并不了解,因此需要了解目前Imageknife渲染花费了多少时间,最初想的是只有通过…...
文件上传笔记
一、上传的简单绕过: 1、若是上传的文件只在前端的代码中进行了过滤: (1)可以直接在开发者工具中删除相关代码: (2)也可以通过 burpsuite 绕过: 上传时,先提前修改 php 文件的后缀…...
计算机网络 第三章数据链路层
参考视频:计算机网络 文章目录 1、数据链路层概述2、链路层基本概念:节点3、链路层基本概念:链路与数据链路、帧4、封装成帧:字符计数法和字符填充法5、封装成帧:零比特填充法6、封装成帧:违规编码法7、差…...
浅析如何在抖音快速通过新手期并积累粉丝
抖音是一款非常受欢迎的短视频分享平台,它提供了一个快速成名和积累粉丝的机会。对于新手来说,通过四川不若与众总结的以下几个步骤可以帮助你快速通过抖音的新手期。 首先,确定你的内容定位。在抖音上,有各种各样的内容类型&…...
英文论文实例赏析——如何写前言?
写作与实验、统计一样重要 研究生的学习往往会遵循这样的过程:实验——数据分析——写作。虽然写作是最后进行的,但写作的学习这应该和实验的学习、数据分析的学习保持同步,因为写作与统计和实验技能一样,是科研工具箱的必…...
springBoot -md
法1 Editor.md https://blog.csdn.net/weixin_42039228/article/details/123472875 CREATE TABLE article ( id int(10) NOT NULL AUTO_INCREMENT COMMENT int文章的唯一ID, author varchar(50) NOT NULL COMMENT 作者, title varchar(100) NOT NULL COMMENT 标题, content l…...
从0开始学go第五天
gin框架返回JSON package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/json", func(c *gin.Context) {//用map序列化//方法一:用map,后面用接口类型// data : map[string…...
大厂技术面试中的手撕代码应该如何准备?
文章目录 手撕代码是什么为什么要考察手撕代码如何准备手撕代码手撕代码注意事项华为OD算法/大厂面试高频题算法练习冲刺训练 不管是秋招还是社招,互联网大厂的技术面试中的手撕代码这一部分总是绕不过去的一关。不只是后端开发和算法岗,现在就连前端、运…...
阿里影业+大麦,开启大文娱新纪元?
被“精心呵护”长达十年后,阿里大文娱在今年终于踏上了关键节点。 3月份,阿里“16N”组织大变革后,大文娱集团独自上路。8月,“分家”后的第一份财报显示,阿里大文娱集团成功大幅扭亏,实现了首次季度经调整…...
springboot整合mybatis入门程序
1.准备工作(创建springboot工程、数据库表user、实体类User) 创建数据表: create table user(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1…...
【BI看板】Superset2.0+图表二次开发初探
Superset图表功能也很丰富了,但一些个性化的定制需求就需要二次开发了。网上二开的superset版本大多是0.xxx版本的或1.5xxx版本,本次用的是2.xxx。 源码相关说明 源码目录 superset-2.0\superset-frontend\plugins\plugin-chart-echarts Yeoman 生成器 …...
微服务学习--1入门
写在前面: 最近摆了几天,现在重新开始学习。《本文没啥用》。 文章目录 概念概括优劣势特征 SpringCloud 概念 概括 微服务技术是分布式架构的一种,因为一个机器的能力有限,需要集群来进行同时解决,但是分布式也就…...
淄博网站设计/西安百度seo
这道题有个同学先暴力跑答案,然后对答案矩阵观察找规律A掉这题真的厉害Orz 题意 n点完全图,对边黑白染色,要求使得三边颜色相等的三元组最少,输出最少数量和染色方案。 题解 所有的三元组为C3n,假设一开始所有的边…...
龙华网站开发公司/seo搜索引擎优化工资薪酬
五 RTSP服务运作基础基本搞明白了,那么RTSP,RTP等这些协议又是如何利用这些基础机制运作的呢?首先来看RTSP.RTSP首先需建立TCP侦听socket。可见于此函数:DynamicRTSPServer* DynamicRTSPServer::createNew(UsageEnvironment& env, Port …...
聊城wap网站制作/百度首页清爽版
设计模式 with Python 7:适配器模式 在本系列的前几篇文章中我提到过,设计模式事实上是编程领域的前辈为了解决某一类问题总结出来的通用解决方案,而编程这项工作其实本身也是为了用计算机语言来描述和解决某些现实问题,所以设计…...
wordpress 积分插件/免费优化网站排名
安装xtrabackup[rootnode1 ~]# yum install percona-xtrabackup完全备份节点一修改配置文件,设置为每张表单独一个表空间,此项必须在安装数据库的时候就设置[rootnode1 ~]# vim /etc/my.cnf[mysqld]innodb_file_per_tableON创建备份目录[rootnode1 ~]# m…...
做有支付系统的网站一般需要多少钱/线上推广怎么做
一、简介 Hystrix Dashboard是Hystrix的一个组件,Hystrix Dashboard提供一个断路器的监控面板,可以使我们更好的监控服务和集群的状态,仅仅使用Hystrix Dashboard只能监控到单个断路器的状态,实际开发中还需要结合Turbine使用。 二…...
太原seo代理商/哈尔滨推广优化公司
最近脑子比较乱,一直昏昏沉沉的。昨天加班,突然想吃葡萄。我(可能,其实我忘了。)跟我对面的同事嘀咕了一句: 我让阿姨去买点葡萄。然后就一溜小跑的到阿姨房间跑去。回来后。我:喂,*…...