目录
1.URL:
- URL 就是浏览器地址栏里的网址
- URL:唯一资源定位符(用这个来找到网络上的资源),尽管是在HTTP这一节内容中介绍URL,但是url不是HTTP独有的,很多其他协议也可以使用。
URL重要的部分: 1. IP地址+端口号 2. 带层次的路径 3. 查询字符串
- 在URL中,会将特殊的字符进行转义(这里转移的范围不仅仅是特殊符号还有汉字)这个过程就是url encode(编码)。转义的规则是将需要转义的字符转为16进制,一个字节带一个%,一个汉字就有3个%。例如:c++ 转义为c%2B%2B;大碗扒饭 转义为%E5%A4%A7%E7%A2%97%E6%89%92%E9%A5%AD。
- 和url encode(编码)相反的就是url decode(解码),解码也就是编码的逆过程。
2.HTTP协议:
- HTTP是应用层的典型的协议 !http协议是前后端交互的桥梁!
- 在浏览器中输入一个网址,稍等片刻就看到了网页;这个过程就是http和服务器进行了通信。
- 学习阶段,主要学习的就是HTTP报文格式,此处的报文格式描述了http请求是啥样的,响应是啥样的
- http这个协议属于最典型的“一问一答”模型的协议。http也是一个文本格式的协议。
2.1抓包工具(这里用fiddler):
- 我们需要借助到“抓包工具”来捕获请求交互的详细情况,借助抓包工具来分析HTTP协议格式 。
- 什么是抓包工具呢,这是个特殊的软件相当于一个代理程序,浏览器给服务器发送的请求就会经过这个代理程序,进一步就能分析出请求和响应的结果如何。
- 举个例子:我是个懒人,有天很想喝可乐,于是就让我弟弟下楼给我买。他不乐意,我说你去买可乐我就给你money买包辣条,我弟弟就去买了。至于怎么买的和老板之间如何交易的我不知道,但是我弟知道。抓包工具的作用就是借助我弟来知道浏览器和服务器之间具体的交互细节。
- 代理一共分为俩种,正向代理和反向代理。正向代理是和客户端服务紧密,服务器不知道真实的客户端是啥;反向代理是和服务器紧密,客户端不知道真实的服务器是啥。上面的例子里我弟弟就是个正向代理。
2.2请求和响应的格式:
- 请求报文,构造一个http请求本质上就是往一个TCP socket中,按照下列格式来写入数据即可。
请求的格式: 1.首行: 方法+URL+版本号 2.header: 这里是按行组织的键值对(有固定的含义), 每一行是一个键值对(键和值之间使用:来分割) 3.空行: (意味着header结束了) 4.body: 正文部分(json或其他格式)
- 响应报文,
响应的格式: 1.首行: 版本号+状态码+状态码描述 2.header: 这里是按行组织的键值对(有固定的含义), 每一行是一个键值对(键和值之间使用:来分割) 3.空行: (意味着header结束了) 4.body: 正文部分(json、html、css、js、图片......)