宁睿 发表于 2024-9-22 00:52:54

[项目][WebServer][项目先容及知识铺垫][上]详细讲解

1.作甚WWW?



[*]WWW是环球信息网的缩写,常简称为Web
[*]分为Web客户端和Web服务器程序,WWW可以让Web客户端(常用欣赏器)访问欣赏Web服务器上的页面,是一个由很多互相链接的超文本组成的体系,通过互联网访问
[*]在这个体系中,每个有用的事物,称为一样“资源”

[*]而且由一个全局“统一资源标识符”(URI)标识
[*]这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来得到资源

[*]HTTP(超文本传输协议)是基于TCP的毗连方式进行网络毗连
[*]HTTP/1.1版本中给出一种持续毗连的机制(长链接)
[*]绝大多数的Web开发,都是构建在HTTP协议之上的Web应用
2.HTTP分层

1.整体

https://i-blog.csdnimg.cn/direct/b7420af9a40b4b6ebba5d80dbfc774f0.png
2.细节

https://i-blog.csdnimg.cn/direct/850e5cb16a394dee8d2c475bf3ad7995.png
3.DNS?

https://i-blog.csdnimg.cn/direct/73b73d0d5c7d45c4959fb7e6b1150924.png
4.协议之间是如何协同运作的?

https://i-blog.csdnimg.cn/direct/79db8af61ef24e13b802edc16468f4c5.png
3.Http相关概念



[*]目前主流服务器利用的是http/1.1版本,但是本项目为了简化代码,按照http/1.0来完成项目
1.特点



[*] 客户/服务器模式(B/S/C/S)
https://i-blog.csdnimg.cn/direct/051ec8a9736f4bfd9f1010ff506938ef.png
[*] 简单快速,HTTP服务器的规模小,因而通信速度很快
[*] 灵活,HTTP答应传输任意类型的数据对象,正在传输的类型由Content-Type加以标记
[*] 无毗连,每次毗连只处理一个请求

[*]服务器处理完客户的请求,并收到客户的应答后,即断开毗连
[*]采用这种方式可以节流传输时间 (http/1.0具有的功能,http/1.1兼容)

[*] 无状态

[*]http协议每当有新的请求产生,就会有对应的新响应产生,协议本身并不会保留你之前的统统的请求大概响应
[*]这是为了要更快的处理大量的事物,包管协议的可伸缩性

[*] 可是,随着web的发展,因为无状态而导致业务处理变得棘手起来,比如保持用户的登录状态

[*]http/1.1虽然也是无状态协议,但是为了保持状态的功能,引入了Cookie和Session技术

2.URI && URL && URN



[*]URI是Uniform Resource Identifier,统一资源标识符,用来唯一的标识一个资源
[*]URL是Uniform Resource Locator,统一资源定位符,他是一种具体的URI

[*]即:URL可以用来标识一个资源,而且还指明确如何locate这个资源

[*]URN,Uniform Resource Name,统一资源定名,是通过名字来标识资源,比如MAILTO:java-net@java.sun.com
[*]URI是以一种抽象的,高层次概念界说统一资源标识,而URL和URN则是具体的资源标识的方式,URL和URN都是一 种UR
[*]URL是URI的子集,可以理解成URL是一种特别类型的URI,包罗了如何获取指定资源

[*]任何东西,只要能够唯一地标识出来,都可以说这个标识是URI
[*]假如这个标识是一个可获取到上述对象的路径,那么同时它也可以是一个URL
[*]但假如这个标识不提供获取到对象的路径,那么它就一定不是URL

[*]示例:

[*]URI: /home/index.html
[*]URL: www.xxx.com:/home/index.html

3.HTTP URL格式



[*]格式:http://host[":"port]

[*]http表现要通过HTTP协议来定位网络资源
[*]host表现合法的Internet主机域名大概IP地址,本主机IP:127.0.0.1
[*]port指定一个端口号,为空则利用缺省端口80
[*]abs_path指定请求资源的URI
[*]假如URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作欣赏器自动帮我们完成

[*]虽然欣赏器默认会添加/,但是依旧没有告知服务器,要访问什么资源
[*]此时,默认返回对应服务的首页


[*]例子:

[*]输入: www.baidu.com,欣赏器自动转换成:http(s)://www.baidu.com/
[*]一个较为完备的http请求:https://github.com/DieSnowK/Study


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: [项目][WebServer][项目先容及知识铺垫][上]详细讲解