网络

2 篇文章 0 订阅
1 篇文章 0 订阅

HTTP协议

Hyper Text Transfer Protocol(超文本传输协议)。
HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。
请求访问文本或图像等资源的一端称为客户端, 而提供资源响应的一端称为服务器端。

特点

http1.0的特点

a、简单快速:当客户端向服务器端发送请求时,只是简单的填写请求路径和请求方法即可,然后就可以通过浏览器或其他方式将该请求发送就行了 。
b、灵活: HTTP 协议允许客户端和服务器端传输任意类型任意格式的数据对象
c、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。(当今多数服务器支持Keep-Alive功能,使用服务器支持长连接,解决无连接的问题)
d、无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即客户端发送HTTP请求后,服务器根据请求,会给我们发送数据,发送完后,不会记录信息。(使用 cookie 机制可以保持 session,解决无状态的问题)

http1.1的特点

a、默认持久连接节省通信量,只要客户端服务端任意一端没有明确提出断开TCP连接,就一直保持连接,可以发送多次HTTP请求 。
b、管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应 。
c、断点续传,就是可以将一个大数据,分段传输,客户端可以慢慢显示。

http2.0的特点

a、HTTP/2采用二进制格式而非文本格式
b、HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个HTTP连接就可以实现多个请求响应
c、使用报头压缩,HTTP/2降低了开销
d、HTTP/2让服务器可以将响应主动“推送”到客户端缓存中

URI、URL、URN

URI

  1. 什么是URI
    URI,通一资源标志符(Universal Resource Identifier, URI)
    表示web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。
  2. URI的结构组成
    URI通常由三部分组成:
    ① 访问资源的命名机制;
    ② 存放资源的主机名;
    ③ 资源自身的名称。
  3. URI举例
    如:https://blog.csdn.net/qq_32595453/article/details/79516787
    我们可以这样解释它:
    ①这是一个可以通过https协议访问的资源,
    ②位于主机 blog.csdn.net上,
    ③通过“/qq_32595453/article/details/79516787”可以对该资源进行唯一标识(注意,这个不一定是完整的路径)

URL

  1. URL
    URL是URI的一个子集。(Uniform Resource Locator,“统一资源定位 符”)。
    通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。
    采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

  2. URL的格式组成
    URL的一般格式为(带方括号[]的为可选项):
    protocol : // hostname[:port] / path / [;parameters][?query]#fragment

    URL的格式由三部分组成:
    ①第一部分是协议(或称为服务方式)。
    ②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
    ③第三部分是主机资源的具体地址,如目录和文件名等。

    第一部分和第二部分用“: //”符号隔开 ,
    第二部分和第三部分用“/”符号隔开。
    第一部分和第二部分是不可缺少的,第三部分有时可以省略。

URI和URL之间的区别

从上面的例子来看,你可能觉得URI和URL可能是相同的概念,其实并不是,URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。


对URI可以认为只是唯一识别的编号,类似于大家的身份证号,而URL就是身份证住址+姓名,这样是不是就很明显了~~

URN

URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。
URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。笼统地说,每个URL都是URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源。上面的 mailto、news 和 isbn URI都是 URN 的示例。
在这里插入图片描述

参考链接

URI和URL的区别比较与理解:https://blog.csdn.net/qq_32595453/article/details/80563142

详解URL的组成

介绍下普通URL的各部分组成
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

从上面的URL可以看出,一个完整的URL包括以下几部分:
1、协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

2、域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

3、端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80

4、虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6、锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

7、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

参考链接

详解URL的组成:https://blog.csdn.net/ergouge/article/details/8185219

HTTP之请求消息Request

在这里插入图片描述
Get请求例子,使用Charles抓取的request:

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本。
GET说明请求类型为GET , [/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。

第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等

第三部分:空行,请求头部后面的空行是必须的
即使第四部分的请求数据为空,也必须有空行。

第四部分:请求数据也叫主体,可以添加任意的其他数据。
这个例子的请求数据为空。

请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
GET: 用于请求访问已经被URL(统一资源标识符)识别的资源,可以通过URL传参给服务器。
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
PUT: 传输文件,报文主体中包含文件内容,保存到对应URL位置。
HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URL是否有效。
DELETE:删除文件,与PUT方法相反,删除对应URL位置的文件。
OPTIONS:查询相应URL支持的HTTP方法。

GET和POST的区别

GET请求:

GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive

POST请求:

POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

1、GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;例 如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
POST提交:把提交的数据放置在是HTTP包的包体中。上文示例中红色字体标明的就是实际的传输数据
因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变.
2、传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。
而在实际开发中存在的限制主要有:
GET:特定浏览器和服务器对URL长度有限制,例如:IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
因此对于GET提交时,传输数据就会受到URL长度的限制。
POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。
3、安全性
POST的安全性要比GET的安全性高。比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存;(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

4、Http get,post,soap协议都是在http上运行的
(1)get:请求参数是作为一个key/value对的序列(查询字符串)附加到URL上的
查询字符串的长度受到web浏览器和web服务器的限制(如IE最多支持2048个字符),不适合传输大型数据集同时,它很不安全。
(2)post:请求参数是在http标题的一个不同部分(名为entity body)传输的,这一部分用来传输表单信息,因此必须将Content-type设置为:application/x-www-form- urlencoded。post设计用来支持web窗体上的用户字段,其参数也是作为key/value对传输。
但是:它不支持复杂数据类型,因为post没有定义传输数据结构的语义和规则。
(3)soap:是http post的一个专用版本,遵循一种特殊的xml消息格式
Content-type设置为: text/xml 任何数据都可以xml化。
Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
我们看看GET和POST的区别
1、get重点在从服务器上获取资源,post重点在向服务器发送数据;

2、get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用”?”连接,多个请求数据间用”&”连接,如: http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;
post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;

3、Get传输的数据量小,因为受URL长度限制,但效率较高;
Post可以传输大量数据,所以上传文件时只能用Post方式;

4、get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;
post较get安全性较高;

HTTP之响应消息Response

在这里插入图片描述

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8

<html>
      <head></head>
      <body>
            <!--body goes here-->
      </body>
</html>

第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)

第二部分:消息报头,用来说明客户端要使用的一些附加信息
第二行和第三行为消息报头,
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8

第三部分:空行,消息报头后面的空行是必须的

第四部分:响应正文,服务器返回给客户端的文本信息。
空行后面的html部分为响应正文。

HTTP请求状态码

在这里插入图片描述

1xx

指示信息-- 表示请求已接收,继续处理
100 客户端必须继续发出请求
101 客户端要求服务器根据请求转换HTTP协议版本

2xx

请求成功–表示请求已被成功接收、理解、接受
200 成功–服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
201 已创建–请求成功并且服务器创建了新的资源。
提示知道新文件的URL
202 已接收–服务器已接收请求,但尚未处理。
203 非授权信息–服务器已成功处理了请求,但返回信息不确定或不完整,可能来自另一个来源。
204 无内容–服务器成功处理了请求,但返回信息为空。
205 重置内容–服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206 部分内容–服务器成功处理了部分用户的GET请求。

3xx

重定向–信息不完整需要进一步补充
300 (多种选择)请求的资源可在多处得到
服务器可以根据请求者(user agent)选择一项操作,或者提供操作列表供请求者选择。
301 永久重定向–在Location响应首部的值仍为当前URL(隐式重定向)
302 临时性重定向–在Location响应首部的值仍为新的URL(显示重定向)
303 查看其他位置–建议客户端访问其他URL或访问方式
304 未修改–Not Modified 请求的资源没有改变 可以继续使用缓存
305 使用代理–请求的资源必须从服务器指定的地址得到
306 前一版本HTTP中使用的代码,现行版本中不再使用
307 声明请求的资源临时性删除

4xx

客户端错误–请求有语法错误或请求无法实现
400 错误请求–客户端请求有语法错误,不能被服务器所理解
401 未授权–请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

HTTP 401.1 未授权,登录失败
HTTP 401.2 未授权,服务器配置问题导致登录失败
HTTP 401.3 ACL 禁止访问资源
HTTP 401.4 未授权 授权被筛选器拒绝
HTTP 401.5 未授权 ISAPI或CGI授权失败

402 保留有效ChargeTo头响应
403 禁止访问–服务器收到请求,但是拒绝提供服务

HTTP 403.1 禁止访问 禁止可执行访问
HTTP 403.2 禁止访问 禁止读访问
HTTP 403.3 禁止访问 禁止写访问
HTTP 403.4 禁止访问 要求SSL
HTTP 403.5 禁止访问 要求SSL 128
HTTP 403.6 禁止访问 IP地址被拒绝
HTTP 403.7 禁止访问 要求客户端证书
HTTP 403.8 禁止访问 禁止站点访问
HTTP 403.9 禁止访问 连接的用户过多
HTTP 403.10 禁止访问 配置无效
HTTP 403.11 禁止访问 密码更改
HTTP 403.12 禁止访问 映射器拒绝访问
HTTP 403.13 禁止访问 客户端证书已被吊销
HTTP 403.15 禁止访问 客户端访问许可过多
HTTP 403.16 禁止访问 客户端证书不可信或者无效
HTTP 403.17 禁止访问 客户端证书已经到期或者尚未生效

404 未找到–请求资源不存在,没有发现文件、查询或URL
405 用户在Request-Line字段定义的方法不允许
406 根据用户发送的Accept拖,请求资源不可访问
407 类似401,用户必须首先在代理服务器上得到授权
408 客户端没有在用户指定的饿时间内完成请求
409 对当前资源状态,请求不能完成
410 服务器上不再有此资源且无进一步的参考地址
411 服务器拒绝用户定义的Content-Length属性请求
412 一个或多个请求头字段在当前请求中错误
413 请求的资源大于服务器允许的大小
414 请求的资源URL长于服务器允许的长度
415 请求资源不支持请求项目格式
416 请求中包含Range请求头字段,在当前请求资源范围内没有range指示值, 请求也不包含If-Range请求头字段
417 服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长

5xx

服务器端错误–服务器处理请求时发生内部错误。这些错误可能是服务器身的错误,而不是请求出错
500 (服务器内部错误)服务器发生不可预期的错误

HTTP 500.100 - 内部服务器错误
HTTP 500-11 服务器关闭
HTTP 500-12 应用程序重新启动
HTTP 500-13 - 服务器太忙
HTTP 500-14 - 应用程序无效
HTTP 500-15 - 不允许请求

501 未实现
502 错误网关
503 服务器不可用–服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
504 网关超时
505 Http 版本不支持

参考

常见HTTP响应状态码:https://blog.csdn.net/GarfieldEr007/article/details/77984065

COOKIE和SESSION

Cookie

HTTP是无状态协议, 它不对之前发生过的请求和响应的状态进行管理。 也就是说,无法根据之前的状态进行本次的请求处理。假设要求登录认证的Web页面本身无法进行状态的管理(不记录已登录的状态), 那么每次跳转新页面不是要再次登录, 就是要在每次请求报文中附加参数来管理登录状态。不可否认, 无状态协议当然也有它的优点。 由于不必保存状态, 自然可减少服务器的CPU及内存资源的消耗。 从另一侧面来说, 也正是因为HTTP协议本身是非常简单的, 所以才会被应用在各种场景里。
保留无状态协议这个特征的同时又要解决类似的矛盾问题,于是引入了Cookie技术。Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。
Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie 的首部字段信息,通知客户端保存Cookie。 当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。服务器端发现客户端发送过来的Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求, 然后对比服务器上的记录, 最后得到之前的状态信息。

Session

主要是讲先前用户信息记录在服务器端,并且生成唯一的Session-ID号,客户端仅仅需要在每次访问的时候,提供对应的ID号码,即可从服务器获取先前存储的对应信息。

  1. 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保存Session的方法很多,内存、数据库、文件都有。集群的时候也要考虑Session的转移,在大型的网站,一般会有专门的Session服务器集群,用来保存用户会话,这个时候 Session 信息都是放在内存的,使用一些缓存服务比如Memcached之类的来放 Session。
  2. 思考一下服务端如何识别特定的客户?这个时候Cookie就登场了。每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用都是用 Cookie 来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了。有人问,如果客户端的浏览器禁用了 Cookie 怎么办?一般这种情况下,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户。
  3. Cookie其实还可以用在一些方便用户的场景下,设想你某次登陆过一个网站,下次登录的时候不想再次输入账号了,怎么办?这个信息可以写到Cookie里面,访问网站的时候,网站页面的脚本可以读取这个信息,就自动帮你把用户名给填了,能够方便一下用户。这也是Cookie名称的由来,给用户的一点甜头。所以,总结一下:Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

服务器如何识别用户身份

这里以shiro的web开发为例,因为shiro的request和session只是对标准的request和session进行了封装,在
DefaultWebSessionManager中,下面的方法就是在request中获取sessionId的过程

  1. 先从浏览器传过来的cookie中获取,找不到的话,

  2. 再从url里获取,这就是我们常说的当用户禁用了cookie之后,可以通过URL重写来做,就是把sessionId直接附加在URL路径的后面;

  3. 还找不到的话,就从参数中获取,也就是我们常说的将sessionId隐藏在表单中,也就是表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
    在这里插入图片描述


步骤:

  1. 客户端把用户ID和密码等登录信息放入报文的实体部分,通常以POST请求的方式发送给服务器。
  2. 服务器会发放用以识别用户的Session ID。通过验证从客户端发送过来的登录信息进行身份认证,将用户的认证状态和Session ID绑定后记录在服务器端。
  3. 客户端接收到Session ID后,会将其作为Cookie保存在本地。下次向服务器发送请求时,浏览器自动发送Cookie,Session ID会随之发送到服务器。
  4. 服务端通过验证接收到的Session ID识别用户和其认证状态。

参考链接

shiro中后台服务器如何获取sessionId:https://blog.csdn.net/ystyaoshengting/article/details/82686569
服务端如何识别已登录用户身份之Session管理和Cookie应用:https://blog.csdn.net/danshenxiaobang/article/details/72902280

区别

cookie数据存放在客户的浏览器上,session数据放在服务器上;
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session;
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用cookie;
单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;

HTTPS

HTTPS就是安全的HTTP,在http与传输层之间加上了一个SSL对称加密与非对称加密。HTTPS = HTTP+ 加密 + 认证 + 完整性保护。

浏览器中输入一个URL发生什么,用到哪些协议?协议大汇总

1、输入URL:http://www.baidu.com
2、DNS 域名解析,获取对应的IP地址以及端口号
3、建立TCP连接(Socket):三次握手,确保这个一定是一个有效的请求和响应,这个三次握手在业界相信大多数人都不陌生,虽然它是提高了传输的有效性,但是这个导致的直接问题就是整个传输过程是很耗时的,也就是说每次http请求都会经历三次握手这个过程,消耗的时间也是不言而喻,并且传统的http协议规定一次请求只能请求一个文件,所以一些顶级网站千方百计的采取一些减少http请求的策略,大多数就是采取一次http请求能够请求多个文件这样的实现,欣喜的是,http2.0已经支持能够一次http能够请求多个文件,这个还是值得期待全部推行开来的,只不过肯定需要过上一段时间,慢慢去等待推行吧。
4、将用户输入URL地址封装成HTTP Request请求报文发送到服务器。
5、后台服务器接收到用户HTTP Request请求报文之后,经过相应的处理,然后将相应结果封装到HTTP Response响应报文中发送给客户端。
6、用户浏览器接收到响应数据后开始渲染html、css,解析和执行JavaScript等代码。

参考链接

HTTP协议简单解释:https://blog.csdn.net/u010710458/article/details/79636625
详解URL的组成:https://blog.csdn.net/ergouge/article/details/8185219
URI和URL的区别比较与理解:https://blog.csdn.net/qq_32595453/article/details/80563142
常见HTTP响应状态码:https://blog.csdn.net/GarfieldEr007/article/details/77984065
Cookie和Session详解:https://blog.csdn.net/gaoyong_stone/article/details/79524321

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值