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方法URLHTTP版本组成

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(代码片段

如何从一个片段导航到另一个片段?

这两个代码片段有啥区别?

超级有用的9个PHP代码片段

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段