http
Posted joezzz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http相关的知识,希望对你有一定的参考价值。
1.URL
1.1概念
1)URL,Uniform Resource Locator,统一资源定位符,是互联网上标准资源的地址
2)URL的一般形式:
协议:常见为http、FTP、https
主机:指服务器的域名或ip地址
端口:如果没有指明端口号,则http默认是80,https默认是443
路径:这个访问资源在服务器上的位置
1.2URI、URL、URN的区别
1)URI,uniform resource identifier,统一资源标识符,是一个用于标识某一互联网资源名称的字符串
2)URL、URN是URI的子集,Web上地址的基本形式是URI,URL和URN是它的两种形式
3)URN:Uniform Resource Name,统一资源名称,它URL的一种更新形式,不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持
2.HTTP协议
2.1概念
1)HTTP
协议位于应用层中,它用于浏览器访问网页
2)HTTP
协议时使用TCP,默认端口号为80
2.2HTTP的报文结构
1)HTTP是面向文本的,因此报文中的每一个字段都是ASCII码串,因此各个字段的长度不确定
2)HTTP有两类报文:
2.2.1请求报文
1)请求报文由请求行、首部行、空行和实体主体四部分组成,请求行和首部行可以看成是报文首部
2)请求行:由HTTP方法、URL和HTTP版本组成
3)方法实际上就是一些命令,包括:
- GET: 请求读取URL所标志的资源
- POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式
- PUT: 在指明的URL下存储一个文件
- HEAD: 获得首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效
- DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件
- OPTIONS:查询相应URI支持的HTTP方法
- TRACE:进行环回测试
- CONNECT:用于代理服务器
4)HTTP版本有1.0、1.1、2.0
5)首部行:用来说明浏览器或报文主体的一些信息
6)请求报文一般不使用主体字段
2.2.2响应报文
1)请求报文由状态行、首部行、空行和实体主体四部分组成
2)状态行:由HTTP版本、状态码和解释状态码的短语组成
3)状态码:三位数字,,分为5大类共33种
- 1XX 信息码,服务器收到请求,需要请求者继续执行操作;
- 2XX 成功码,操作被成功接收并处理;
- 3XX 重定向,需要进一步的操作以完成请求;
- 4XX 客户端错误,请求包含语法错误或无法完成请求;
- 5XX 服务器错误,服务器在处理请求的过程中发生了错误
如:
- 403:请求的对应资源禁止被访问
- 404:服务器无法找到对应资源
- 500:服务器内部错误
- 503:服务器正忙
4)有些响应报文可能不使用主体字段
2.3在浏览器地址栏输入一个URL按下回车后发生的所有事情
1)通过DNS解析出URL种主机的ip地址
2)三次握手建立TCP连接,默认端口号为80
3)
4)
5)
6)
7)
2.4代理服务器
1)代理服务器又称网页高速缓存(Web cache),代理服务器把最近的一些HTTP请求报文和响应报文存在磁盘上,当新请求到达时,代理服务器发现这个请求和缓存的相同,就返回缓存的响应报文,就不需要去服务器上获取这个资源
2)代理服务器可以在客户端、服务器端工作,也可以在中间系统上工作
2.5get和post的区别
2.5HTTPS协议
2.6HTTP1.0和HTTP1.1的区别
2.7HTTP2.0和HTTP1.x的区别
以上是关于http的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 报错 DioError [DioErrorType.DEFAULT]: Bad state: Insecure HTTP is not allowed by platform(代码片段