初识HTTP
输入网址进入网页过程发生了什么?
-
DNS解析:浏览器会向本地DNS服务器发出域名解析请求,如果本地DNS服务器中没有对应的IP地址,则会向上级DNS服务器继续发出请求,直到找到正确的IP地址为止。
-
建立TCP连接:浏览器会根据IP地址向服务器发送一个TCP连接请求,建立起与服务器的连接。
-
发送请求:浏览器会向服务器发送一个HTTP请求,请求服务器返回相应的网页内容。
-
服务器响应:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容返回相应的网页内容,并通过TCP连接将这些内容传输到用户的浏览器。
-
浏览器处理响应:浏览器接收到服务器返回的网页内容后,会根据HTML、CSS、JavaScript等语言来解析网页,并将其中的图片、视频等资源也下载到本地。
-
关闭连接:当用户关闭网页时,浏览器会向服务器发送一个断开连接请求,服务器收到请求后会关闭与浏览器之间的TCP连接。
什么是HTTP
全称Hyper Text Transfer Protocol超文本传输协议
-
简单:HTTP协议设计简单,易于实现和使用。
-
无状态:HTTP协议是无状态协议,即服务器不维护任何关于客户端的信息,每个请求都是独立的,服务器不会从前一个请求中获得任何信息。
-
可扩展:HTTP协议支持多种数据格式和协议,能够自由地扩展和变化。
-
明文传输:HTTP协议传输的数据是明文的,可能会被窃听、篡改和伪造。
-
请求响应模式:HTTP协议是基于请求响应模式的协议,客户端发送请求,服务器返回响应。
-
支持缓存:HTTP协议支持缓存机制,可以减少网络传输的数据量,提高数据传输的效率。
-
基于TCP/IP:HTTP协议是基于TCP/IP协议栈的应用层协议,使用TCP协议进行可靠传输。
请求方法
状态码
HTTP状态码是指在HTTP协议通信过程中,服务器向客户端返回的状态标识。
补充:
302 Found:表示请求的资源暂时被移动到了一个新的URL上,客户端需要使用该URL重新请求。
400 Bad Request:表示请求的语法不正确,服务器无法理解客户端发送的请求。
401 Unauthorized:表示客户端需要进行身份验证,但没有提供有效的凭证。
403 Forbidden:表示服务器拒绝了请求,客户端没有访问权限。
503 Service Unavailable:表示服务器暂时无法处理请求,通常是由于服务器过载或维护。
常用请求头
常用响应头
缓存
HTTP缓存是指在客户端和服务端进行交互时,通过缓存来实现网络传输数据的存储。缓存会在请求发送时,先判断本地是否已经有了所请求的资源,如果有则返回缓存数据,否则请求服务端获取新的数据。
所以有时候资源不更新是因为直接从缓存里获取了资源,有时候我们需要手动清空缓存。
常用的缓存策略包括:
-
强制缓存:即在缓存期内,客户端在发起请求时,直接从本地缓存中获取资源,不会向服务器发起请求。常见的缓存控制方式有:Expires和Cache-Control。
-
协商缓存:当强制缓存失效时,客户端会通过向服务器发送请求来检查资源是否存在更新,如果服务器资源没有变化,则返回304 Not Modified状态码,客户端就会使用本地的缓存副本。常见的缓存控制方式有:Last-Modified/If-Modified-Since和ETag/If-None-Match。
缓存可以有效减少网络传输的耗时和流量消耗,从而提升网页的加载速度和用户体验。
cookie
HTTPS(Hypertext Transfer Protocol Secure)
在HTTP的基础上,经过了数据加密的过程
HTTP 是一种不加密的协议,它传输的数据都是明文的,容易被中间人窃听和篡改;
而HTTPS 则是在 HTTP 的基础上增加了 SSL/TLS 加密机制,保证数据传输的安全性。
HTTPS 通过 SSL/TLS 加密传输数据,使得在传输过程中的数据都被加密,中间人无法获得明文信息。HTTPS 还使用了证书来验证服务器的身份,以避免中间人攻击。
在安全性方面,HTTPS 通常被用于传输一些敏感信息,例如登录凭证、信用卡信息等。
而 HTTP 通常用于传输一些不敏感的信息,例如一些公开的新闻、文件下载等。