前言
这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题
于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。
微信小程序搜索:Python面试宝典
或可关注原创个人博客:https://lienze.tech
也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习
HTTP协议
HTTP协议属于建立在TCP协议
中的应用层上的一种协议,HTTP协议以客户端请求和服务端应答为标准
浏览器通常被人称为客户端,Web服务器常被称作服务端
HTTP协议常用端口为80,客户端首先通过80端口向HTTP服务端发起请求,建立TCP连接;之后进行HTTP数据传输
协议
|
层
|
HTTP
|
应用层
|
SSL/TLS
|
加密层
|
TCP
|
传输层
|
IP
|
传输层
|
数据链路层
|
物理层
|
当浏览器作为客户端访问服务器之后,取到所有所需的数据,立即断开TCP连接,整个HTTP连接过程非常短,所以人们也常称HTTP协议为无连接的协议
这也因为每一次HTTP的请求,都是重新开启一个新的连接,而不是在一个历史连接持续工作
资源定位标识符
发起HTTP请求的内容资源由统一资源标识符(Uniform Resource Identifiers)URI进行表示
其中资源定位标识符主要有三种
- URI:统一资源标识符(uniform resource identifier);唯一表示一个资源。
- URN:统一资源命名(uniform resource name);通过名字来表示资源。
- URL:统一资源定位器(uniform resource locaotor);一个具体的URI标示,可以通过该标识获取访问到对应资源
URI
其中如果已经是一个URL,那么肯定是一个URI标识;但是一个URI并不一定是一个URL;URL是URI的一种表现形式
URL
URL是资源标识符,而URL不光具有标识性,还需要具有定位性,用来更加具体描述资源的具体位置,并且还会指明获取资源所采用的协议。一个URL包含,主机名称(IP或域名)、端口号(默认为80)、路径和查询字符串5部分
http://www.example.com:80/aaa/test.jpg?id=1
- 网络协议为:http
- 主机:www.example.com
- 端口:80
- 路径:aaa/test.jpg
- 查询字符串参数:id=1
URN
URN也是URI的一种表现形式,包括名字(给定的命名空间),但是不包括访问的方式
www.example.com/aaa/test.jpg
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ba9mRGrq-1634811378238)(./静态资源/URI图示.png)]
Request
当我们使用HTTP协议访问某个连接时,首先需要向服务器提交一个Request请求;
一般当我们使用浏览器访问Web服务时,由浏览器完成这个工作,Request消息分为三部分,分别包括:Request Line、Request Header、Body
下面为HTTP协议在Request时的消息体构造:
请求方法
|
空
|
URL
|
空
|
协议版本
|
\r
|
\n
|
Request Line
|
头部字段
|
**
Python网络协议编程之HTTP协议详解相关推荐
- 网络套接字编程之IO模型详解
网络套接字编程之IO模型详解 本文主要参考自<UNIX网络编程>(第1卷)(套接口API第3版) Unix下可用的五种I/O模型有: 阻塞式I/O 非阻塞式I/O I/O复用(select ...
- android surface编程,Android编程之SurfaceView实例详解
本文实例讲述了Android编程之SurfaceView用法.分享给大家供大家参考,具体如下: 关于surfaceView相关知识: View和SurfaceView主要区别: 1. View只能在U ...
- Java并发编程之Thread类详解
Thread类详解: 线程(Thread): 是操作系统进行调度的最小单位,Java中的线程是对操作系统线程的封装.本文从线程的创建到停止结合代码和具体实例分析一下关于java线程的一些常见问题. 线 ...
- python itertools模块位置_Python高效编程之itertools模块详解
0 前言 说到处理循环,我们习惯使用for, while等,比如依次打印每个列表中的字符:lis = [ I , love , python ] for i in lis: print(i) I lo ...
- socket网络编程之htons()相关详解
1.走起 ntohs =net to host short int 16位 htons=host to net short int 16位 ntohl=net to host long int 32位 ...
- TCP/IP编程之accept函数详解
accept函数由TCP服务器调用,用于从已完成连接队列返回下一个已完成连接.如果已完成连接队列为空,那么进程被投入睡眠(假定套接字默为默认的阻塞方式) 函数原型: ACCEPT(2) Linux P ...
- TCP/IP编程之select函数详解
前述: linux下的I/O复用模型目前很多都已经不用select函数了,而是用epoll,但是为什么还需要了解select编程呢,其实是从两个方面考虑的:一是为了通过select去理解epoll,而 ...
- shell编程之 cut命令详解
cut命令是我们在shell编程中常用的一个命令:在这里记录一下它的用法: 如下:提取第二列:第二and第三列:注意文本中的每列之间 使用tab制表符 不能使用空格进行分隔,否则无法正确提取 -f : ...
- Flutter编程之BoxDecoration用法详解
Widget的装饰,使其改变其显示形式.Container的decoration用BoxDecoration来设置.BoxDecoration的参数如下: 属性 解释 类型 color 颜色背景 Co ...
最新文章
- Kernel tasklet
- Ansible — ansible.cfg 配置文件解析
- shell模拟php多进程从redis获取数据(多个redis实例)
- Spark SQL使用window进行统计
- c++ sleep函数_《PHP扩展开发》-hook-(hook原来的sleep)
- H3C-WA2210升级
- Protobuf C++类中成员函数GetCachedSize()与ByteSize()的区别
- 九、面向对象三大特征(三)—— 多态
- Flutter开发:在Flutter Plugin中引入aar——本地maven法
- ssm教务排课系统MVC学校专业选修课程安排选课信息jsp源代码数据库mysql
- axios跨域访问报错500
- 用python删除pdf文件的特定页码
- EXCEL 如何删除重复值,并保留重复值的第一个选项
- 从零开始修炼电脑维修秘籍
- Pyecharts亚马逊订单可视化
- 让星星⭐月亮告诉你,打印完全格式的日期格式 包含 年月日时分秒毫秒
- 英文字体“磅”(Point)和中文字号的关系
- okhttp https ip直连设置Host
- java中集合的分类以及集合的选择
- 信息检索相关任务及数据集介绍
热门文章
- Idea开发工具集成Drools插件
- 阿里云linux 重启mysql数据库_阿里云linux服务器mysql修改密码教程
- 知识点------文字超出(单行,两行)显示省略号(...)
- STM32寄存器_GPIO操作
- 09-Node.js—express框架
- myeclipse怎么调试java,如何用MyEclipse调试JAVA程序
- 静态类型语言和动态类型语言
- 数据库查询速度提高方法
- java小鸡大冒险_小鸡大冒险
- 收集整理Matlab中的linprog函数使用说明
|