HTTP协议详解你确定不看吗

HTTP

超(超链接URL)文本(html)传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。应用层协议。

HTTP协议概述

http是一个浏览器到服务端(B/S)请求和应答的标准。http也是基于tcp协议进行传输。默认端口号为80端口。浏览器发起一个HTTP请求到服务器,我们将这个浏览器称为用户代理程序。服务器通过HTTP协议返回一个响应,我们称将这个服务器称为源服务器。

通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口的连接(TCP),然后服务器收到客户端的请求,会返回一个响应数据包给客户端,然后客户端再解析数据包显示页面。

HTTP工作原理(也就是浏览器的访问过程)

  1. 我们向浏览器输入域名后,浏览器会对域名进行解析,查找域名所对应的IP地址。这里涉及到域名的解析过程。

图片

  • 浏览器首先会检查自身缓存中有没有这个域名所对应的IP地址,如果以前访问过浏览器就会缓存这个域名所对应的IP地址。如果没有会进行下一步查找。
  • 如果浏览器缓存中没有所对应的IP地址,则浏览器会去检查操作系统中有没有对应的已解析过的结果。在操作系统中也有一个域名解析的过程,在Windows中可以通过C盘的host文件来设置。
  • 如果本地host文件中也没有,这时候才会请求本地域名解析服务器(DNS)来进行域名解析。
  1. 浏览器获取域名对应的IP地址后,会与对应的服务器建立TCP的连接。
  • 这里涉及到TCP的三次握手过程

图片

  1. 与服务器建立连接后,浏览器会向服务器发送请求数据包
  2. 服务器接收到浏览器发送的请求数据包后,会返回一个响应数据包给浏览器。

图片

  1. 然后浏览器解析数据包,显示页面

无状态保存

HTTP协议是一种不保存状态,也就是无状态协议,HTTP协议,自身不对请求和响应之间的通信状态进行保存,也就是说在HTTP这个级别,协议对于发送的请求和响应都不做持久化处理。

使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生,协议本身并不保留之前的一切请求或响应报文的信息,这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP设计成无状态。也就是你使用HTTP协议的时候是不会记录你上一个访问的数据,这也就是cookie和session诞生的原因,正是因为现在的web服务需要记录用户的访问,所以才引入cookie和session。

无连接

无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答后,及断开连接,这也就是TCP的四次挥手。这种处理方式可以节省传输时间,并且可以提高并发性能,不能和每个用户建立长久的连接,请求一次响应一次服务端和客户端就中断了,但是无连接有两种方式,早期的http协议是一个请求一个响应,直接就断开了,但是现在的http协议不是直接断开而是等几秒钟,就是有一个缓存,如果用户在这几秒钟再次发送请求就继续处理,如果没有就断开。

图片

HTTP请求方式

HTTP一共有八种请求方式:GET,POST,HEAD,PUT,DELETE,TRACE,OPTIONS,CONNECT

这里我们介绍一下我们使用最频繁的get和post两种请求方式。

GET

  • 向指定的资源发出显示请求,使用GET方法应该只用在读取数据上,而不应当被用于产生“副作用”的操作中,例如web application。其中是因为get中的数据会放在URL上不安全,所以一般get是用于请求数据中使用。
  • GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.
  • GET提交的数据大小有限制(因为浏览器对URL的长度有限制)

POST

  • 一般用于上传更新资源。
  • POST方法是把提交的数据放在HTTP包的请求体中.
  • 而POST方法提交的数据没有限制.

HTTP状态码

状态代码的第一个数字代表当前响应的类型:

  • 1xx消息——请求已被服务器接收,继续处理
  • 2xx成功——请求已成功被服务器接收、理解、并接受
  • 3xx重定向——需要后续操作才能完成这一请求
  • 4xx请求错误——请求含有词法错误或者无法被执行
  • 5xx服务器错误——服务器在处理某个正确请求时发生错误

图片

HTTP请求协议格式

HTTP请求协议主要由请求行,请求头和请求数据三部分组成。

图片

图片

HTTP响应格式

图片

在这里插入图片描述

HTTP和HTTPS区别

https简介

  • 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
  • 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
  • HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
  • HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性

HTTP和HTTPS区别

  1. https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4. http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  5. HTTPS需要进行加密解密的过程所以需要消耗更多的资源

HTTP与HTTPS详细可参考:

https://blog.csdn.net/qq_35642036/article/details/82788421

猜你喜欢

转载自blog.csdn.net/qq_44762290/article/details/113377047