首页 > 其他分享 >HTTP

HTTP

时间:2023-07-15 18:14:13浏览次数:32  
标签:浏览器 请求 响应 服务器 HTTP 页面

HTTP

4.1什么是HTTP

HTTP(超文本传输协议)是一种简单的请求-响应协议,它通常运行在TCP之上。

  • 文本:html,字符串

  • 超文本:图片,音乐,视频,定位,地图

  • 默认端口号80

HTTPS:s:安全的 默认端口号443

4.2两个时代

  • http1.0

    • HTTP/1.0客户端可以与web服务器连接后,只能获得一个web资源,断开连接

  • http2.0

    • HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。

4.3HTTP请求

  • 客户端--发送请求(request)--服务器

百度:

Cache-Control:private 缓存控制
Connection:keep-Alive  连接:保持活跃
Content-Encoding:gzip  编码
Content-Type:text/html 类型
Date:Sat,07 Sep 2018 07:02:15 GMT 类型
Expirse:Sat,07 Sep 2018 07:02:15 GMT 类型
Server:BWS/1.1 浏览器服务信息

请求行

  • 请求行中的请求方式:GET

  • 请求方式:Get,Post,HEAD,DELETE,PUT,TRACT

    • Get:请求携带的参数较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效。

    • post:请求携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。

消息头

Accept:告诉浏览器它所支持的数据类型
Accept-Encoding:支持那种编码格式 GBK utf-8 GB2312 IS08859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机...

4.4HTTP响应

  • 客户端--响应--服务器

百度:

1 Cache-Control:private 缓存控制
2 Connection:keep-Alive  连接:保持活跃
3 Content-Encoding:gzip  编码
4 Content-Type:text/html 类型
5 Date:Sat,07 Sep 2018 07:02:15 GMT 类型
6 Expirse:Sat,07 Sep 2018 07:02:15 GMT 类型
7 Server:BWS/1.1 浏览器服务信息

响应体

Accept:告诉浏览器它所支持的数据类型
Accept-Encoding:支持那种编码格式 GBK utf-8 GB2312 IS08859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机...
Refrush:告诉客户端,多久刷新一次
Location:让网页重新定位

响应状态码(重点)

200:请求响应成功

3xx:请求重定向

  • 重定向:你重新到我给你的新位置去。

404:找不到资源

  • 资源不存在

5xx:服务器代码错误 500

  • 502网关错误

常见面试题:当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?

当你在浏览器的地址栏中输入地址并按下回车键后,以下是一般情况下会经历的一些步骤:

1. 解析URL:浏览器会解析输入的URL,将其分解成协议(如HTTP或HTTPS)、主机名和路径等组成部分。

2. DNS解析:浏览器将主机名(例如www.example.com)发送到DNS(Domain Name System)服务器,以获取对应的IP地址。DNS服务器的作用是将主机名转换成IP地址。如果DNS服务器有相关记录并返回IP地址,浏览器将继续向该IP地址发送请求。如果没有相关记录,浏览器还可能向其他DNS服务器发送请求,直到找到IP地址为止。

3. 发起网络连接:浏览器使用解析得到的IP地址,通过互联网向目标服务器发起网络连接。这个过程涉及到经过多个网络节点的路由,以找到合适的路径到达目标服务器。

4. 建立TCP连接:浏览器和服务器之间使用TCP/IP协议进行通信。在建立TCP连接的过程中,经历了三次握手的步骤,以确保双方都能正常通信。

5. 发送HTTP请求:一旦TCP连接建立成功,浏览器将发送一个HTTP请求给服务器。这个请求包含了诸如请求的类型(GET、POST等)、请求头(例如浏览器类型、所需要的数据等)和请求体(在POST请求中包含提交的数据)等信息。

6. 服务器处理请求:服务器收到浏览器发送的请求后,会根据请求的类型和路径等信息进行处理。服务器可能会执行相应的逻辑,从数据库中获取数据,生成动态页面等操作。

7. 返回HTTP响应:服务器处理完请求后,会生成一个HTTP响应,其中包含了响应头(例如状态码、内容类型等)和响应体(实际返回的数据)。服务器将这个响应发送回浏览器。

8. 浏览器渲染页面:浏览器接收到HTTP响应后,会解析响应头和响应体。如果是一个HTML页面,浏览器会根据HTML标记语言的规范解析页面结构,并开始加载和渲染页面中的各个元素(如文本、图像、样式表等)。浏览器还会执行页面中的JavaScript代码,以实现动态交互和功能。

9. 页面展示完成:在加载和渲染完成后,浏览器会将解析的页面内容显示在用户的屏幕上,用户可以看到完整的页面并进行交互操作。

整个过程发生的时间是非常短暂的,通常只需几毫秒至几秒钟,具体时间取决于网络延迟、服务器响应速度和页面内容的复杂程度等因素。

标签:浏览器,请求,响应,服务器,HTTP,页面
From: https://www.cnblogs.com/sx-xiaoL/p/17556614.html

相关文章

  • 信息安全 -- 数据加密 -- HTTPS原理
    对称加密:同一个密钥进行加解密,典型的对称加密方式AES算法优点:运算速度快缺点:密钥需要信息交换的双方共享,一旦被窃取,消息会被破解 非对称加密:公钥加密,私钥解密;或者私钥加密,公钥解密优点:私钥严格保密,公钥任意分发,黑客获取公钥无法破解密文缺点:运算速度非常慢非对称加密的......
  • 解决浏览器自动将http跳转至https导致无法访问的问题
      最近在宝塔面板申请免费的SSL证书后,部署证书的80端口下的网站可以通过https正常访问,但其他未部署证书的端口也被强制跳转至https请求,导致浏览器提示不安全从而无法访问。宝塔的8888端口也不能访问,当时那是一个慌,当我尝试了各种方法,如重新放行443端口、重新配置nginx反向代理、......
  • httplib库的使用(支持http/https)
    httplib库的使用,支持http/httpshttplib库简介1.文件目录2.client端2.1快速搭建一个client端2.2HTTPS2.3下载文件2.4GET大数据2.5POST大数据2.6上传文件3.server端的简单使用4.其他资料httplib库简介httplib库是一个以C++11特性编写的库,所以编译器也需要能......
  • Oracle学习笔记:parallel并行处理 --转载 https://blog.csdn.net/w892824196/article/
    在使用oracel查询时,可以通过并行提高查询速度。例如:select/*+parallel(a,6)*/count(1)fromtable_namea;强行启用并行度来执行当前SQL。加上这个说明之后,可以强行启用Oracle的多线程处理功能,提高效率。但本身启动这个功能,也是要消耗资源与性能的。所有,一般都会在返回记......
  • 老杜 JavaWeb 讲解(十) —— HttpServletRequest接口源码分析
    (十二)HttpServletRequest接口源码分析对应视频:21-HttpServletRequest接口12.1介绍HttpServletRequest是一个接口,全限定名称:jakarta.servlet.http.HttpServletRequestHttpServletRequest接口是Servlet规范中的一员。HttpServletRequest接口的父接口:ServletRequest......
  • httplib 库介绍与使用
    说明:cpp-httplib是个开源的库,是一个c++封装的http库,使用这个库可以在linux、windows平台下完成http客户端、http服务端的搭建,这是一个多线程“阻塞”HTTP库。使用起来非常方便,只需要包含头文件httplib.h即可。源码库地址:https://github.com/yhirose/cpp-httplib httplib......
  • 虚拟主机httpd.ini怎么实现301重定向
    首先询问你的服务商你使用的虚拟主机是否支持伪静态,如果支持的话,请在根目录创建文件名为:httpd.ini的文件,代码写法如下:RewriteCondHost:^jinmengqiang\.cn$RewriteRule(.*)http\://www\.jinmengqiang\.cn$1[I,RP]把以上代码中本站的域名替换成你的即可.本文链接:https://......
  • 什么是HTTPS?与HTTP的区别?
    HTTP(HypertextTransferProtocol)和HTTPS(HypertextTransferProtocolSecure)是用于在网络上传输数据的两种协议。它们之间的主要区别在于安全性和数据传输的方式。在本文中,我们将详细解释HTTP和HTTPS的区别,并介绍HTTPS证书的概念、使用方法和作用。一、HTTP的基本概念和工作原理H......
  • 使用Certbot免费https证书运行django
    CertbotインストールbashsudoaptinstallcertbotNginxを停止bashsudosystemctlstopnginx......
  • .NET 7发布到IIS HTTP 错误 500.19 - Internal Server Error
    之前一直都是用的独立发布,就没有配置过服务器环境,今天发布了一个依赖版,果不其然报错了一番查找之后原因也是很简单,服务器需要安装一个.NET运行时的环境https://dotnet.microsoft.com/zh-cn/download/dotnet/7.0打开之后下载这一个,你也可以选择下载左边的SDK,里面是包含了.NET运......