admin 管理员组文章数量: 887016
目录:
一、HTTP概念部分
1.web服务器的概念
1.1apache和nginx
1.2网页、网页文件和网站
1.3www
1.4HTTP
1.5web服务器的类型
1.6动态网站架构lamp
(1)LAMP (2)搭建动态网站的需求
1.7网址的意义
1.8URL、协议、主机地址或者主机名、端口
2.http协议运行原理
3.请求相应过程
3.1请求流程图
3.2浏览器与服务器之间传递数据的方法:
3.3状态代码
3.4常见的状态代码、状态描述的说明如下
3.5HTTP请求报文
(1)请求行 (2)请求头部 (3)请求数据
3.6HTTP响应报文
(1)状态行、状态码 (2)响应头部 (3)响应数据
4.web网站搭建思路
5.web服务器基本配置以及常用文件目录介绍
(1)搭建静态网站——基于http协议的静态网站 (2)主配置文件内容二、HTTP搭建
1.1默认http访问界面
1.2http访问静态界面
1.3基于ip地址对web服务器的访问
1.4基于端口
1.5基于域名
1.6ssl认证(https)
1.7虚拟目录和用户控制
1.8动态网站搭建三、补充ssl
四、360笔试题
一、HTTP(超文本传输协议)概念部分
服务:是运行在操作系统后台的一个或多个程序,为用户或系统提供某项特定的服务。服务配置最多的是网络服务,网络服务通常就是为其他用户,其他计算机提供某项功能服务。
1.web服务器的概念
Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache和Microsoft的Internet信息服务器(Internet Information Services,IIS)unix nginx。
1.1apache和nginx
linux下的web服务器,软件使用的apache,apache也是美国军方的一种大型直升机阿帕奇。开放源代码的Apache(阿帕奇)服务器起初由Illinois大学Urbana-Champaign的国家高级计算程序中心开发,后来Apache被开放源代码团体的成员不断地发展和加强。逐渐,它开始在功能和速度上超越其他Web服务器。由于Apache服务器拥有牢靠可信的稳定性美誉,因此从1995年1月以来,Apache一直是Internet上最流行的Web服务器,下面这张图我们就可以看出来,apache的市场占有率是遥遥领先其他的浏览器。
apache的特点:
1.稳定
2.rewrite强大
3.select 同步阻塞
4.一个连接对应一个进程
5.进程处理用户请求,用MPM(多处理模块)来绑定到网络端口上,接受请求,调度子进程处理请求
6.当用户请求过多时,开启的进程较多,占用内存大,每秒最多的并发连接请求最多不超过 3000 个
7.一个进程死掉时,不会影响其他的用户
Nginx特点
1.epoll 异步非阻塞
2.nginx在开启时,会生成一个master进程,然后,master进程会fork多个worker子进程,最后每个用户的请求由worker的子线程处理。
3.可以配置nginx的upstream实现nginx的反向代理。
4.支持7层负载均衡
5.静态文件、反向代理、前端缓存等处理方便
6.支持高并发连接,每秒最多的并发连接请求理论可以达到 50000 个
7.配置文件简单
8.用线程处理用户请求,而线程是共享内存的,只需要开启少量进程,多个线程9.就可以共享进程的内存,占用内存小
10.一个进程死掉时,会影响到多个用户的使用,稳定性差
1.2网页、网页文件和网站
(1)网页是网站的基本信息单位,是WWW的基本文档。它由文字、图片、动画、声音等多种媒体信息以及链接组成,是用HTML编写的,通过链接实现与其他网页或网站的关联和跳转。(网站的基本单位)
(2)网页文件是用HTML(标准通用标记语言下的一个应用)编写的,可在WWW上传输,能被浏览器识别显示的文本文件。其扩展名是.htm和.html。
(3)网站由众多不同内容的网页构成,网页的内容可体现网站的全部功能。通常把进入网站首先看到的网页称为首页或主页(homepage),例如,新浪、网易、搜狐就是国内比较知名的大型门户网站。(网络站点)
1.3www
(1)是环球信息网的缩写,(亦作“Web”、“WWW”、“‘W3’”,英文全称为“World Wide Web”),中文名字为“万维网”,"环球网"等,常简称为Web。 分为Web客户端和Web服务器程序。 WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。 是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。
(2)(也就是全球信息广播的意思,通常说的上网就是使用www来查询用户所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方式将信息以Internet传递到世界各处去。与其他服务器类似,当你连接上www网站,该网站肯定会提供一些数据,而你的客户端则必须要使用可以解析这些数据的软件来处理,那就是浏览器。www服务器与客户端浏览器之间的连接图。)
浏览器怎样向web服务器请求数据,以及服务器怎样把文档传送给浏览器呢?
1、 这就是由http协议来定义的,(Hyper Text Transport Protocol,HTTP,超文本传输协议)。
2、www服务器需要提供可让客户端浏览的平台。目前最主流的Web服务器是Apache、Microsoft的Internet信息服务器(Internet Information Services,IIS)和unix nginx。
3、服务器所提供的最主要数据是超文本标记语言(Hyper Text Markup Language,HTML)、多媒体文件(图片、影像、声音、文字等,都属于多媒体或称为超媒体),HTML只是一些纯文本数据,通过所谓的标记来规范所要显示的数据格式。
4、客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上。那么著名的浏览器就有内建在Windows操作系统内的IE浏览器了,还有Firefox浏览器和Google的chrome浏览器。
1.4HTTP
(HyperText Transfer Protocal)超文本传输协议,是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准。
<html>
<head>
<title> OPENLBA</title>
</head>
<body>
<div style="height: 923px;">
<a herf="">nihao</a>
<a herf="">xiaobai</a>
</div>
<div style="height: 191px;"><div>
</body>
</html>
1.5web服务器的类型
1.仅提供用户浏览的单向静态网页
单纯是由服务器单向提供数据给客户端,Server不需要与client端有互动,所以你可以到该网站上去浏览,但是无法进行数据的上传。
2.提供用户互动接口的动态网站
这种类型的网站可以让服务器与用户互动,常见的例如留言板,博客。这种类型的网站需要通过“网页程序语言”来实现与用户互动的行为。常见的例如:PHP网页程序语言,配合数据库系统来进行数据的读、写。当你在向服务器请求数据时,其实是通过服务器端同一个网页程序在负责将数据读出或写入数据库,变动的是数据库的内容,网页程序并没有任何改变。
1.6动态网站架构lamp
谈到apache,我们不得不提到lamp
静态网页:html
动态网页 : 和后台数据库实现一些交互 php jsp python perl …
Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.
(1)LAMP(linux+Apache+MySQL+PHP)
Apache主要提供www的服务器平台
MySQL:传统的文件读取是很麻烦的,如果你只要读取该文件当中的一小部分,系统还是会将整个文件读出来,若又有人同时读取同一个文件时,那就会造成效率与系统上的问题,所以才会有数据库系统的推出。数据库其实是一种特殊格式的文件,这种文件要通过特殊接口(数据库软件)来进行读写。由于这个特殊接口已经针对数据的查询、写入做过优化设计,因此很适合多人同时写入与查询工作。
PHP:PHP可以被用来建立动态网页,PHP程序代码可以直接在HTML网页当中嵌入,就像编辑HTML网页一样简单。PHP是一种“程序语言”,这种程序语言可以直接在网页当中编写,不需要经过编译即可执行。
(2)搭建动态网站的需求
1、可支持的操作系统:让所有需要的软件都能够进行安装。
2、可运行的www服务器:例如Apache。
3、网页程序语言:Perl(Practical Extraction and Report Language,实用报表提取语言)、PHP(Hypertext Preprocessor,超文本预处理器,是一种通用开源脚本语言)、JSP(Java Server Pages,java服务器页面)、CGI(Common Gateway Interface,公共网关接口)、ASP(Active Server Pages,动态服务器页面)。
4、数据存储的数据库系统 :MySQL、MSSQL、Oracle等。
互联网—万维网区别
Internet提供的主要服务有万维网(WWW)、文件传输(FTP)、电子邮件(E-mail)、远程登录(Telnet)、手机 (3GHZ) 等。
1.7网址的意义
web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在redhat中,这个目录默认在/var/www/html。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的。
1.8URL、协议、主机地址或者主机名、端口
URL:Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
<协议>://<主机地址或主机名>[:port]/<目录资源,路径>
浏览器常支持的协议有:http、https、ftp等。
主机地址或者主机名:主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了。
端口:http为80。https为443。
IANA:互联网数字分配机构
0-1023:众所周知,永久地分配给固定的应用程序使用,特权端口(只有管理员有权限启用并让进程监听);
1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用:3306/TCP
41952-60000:客户端程序随机使用的端口,动态端口,或私有端口;
2.http协议运行原理
1)Web浏览器使用HTTP命令向一个特定的服务器发出Web页面请求。
2)若该服务器在特定端口(通常是TCP 80端口)处接收到Web页面请求后,就发送一个应答并在客户和服务器之间建立连接。
3)服务器Web查找客户端所需文档,若Web服务器查找到所请求的文档,就会将所请求的文档传送给Web浏览器。若该文档不存在,则服务器会发送一个相应的错误提示文档给客户端。
4)Web浏览器接收到文档后,就将它显示出来。
5) 当客户端浏览完成后,就断开与服务器的连接。
3.请求相应过程
3.1请求流程图
0.地址解析
从链接地址中分解出协议名、域名、端口、对象路径等部分
用dns解析域名,得到服务器ip地址
如用客户端浏览器请求这个页面:http://localhost:8080/index.htm
从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下: 协议名:http 主机名:localhost( 在这一步,需要域名系统DNS解析域名localhost,得主机的IP地址。) 端口:8080 对象路径:/index.htm
1.封装http请求数据包,客户端连接到web服务器
拿到域名对应的IP地址之后,User-Agent(一般是指浏览器)会以一个随机端口(1024 < 端口 < 65535)向服务器的WEB程序(常用的有httpd,nginx等)80端口发起TCP的连接请求。
建立一个tcp套接字连接(tcp三次握手)
2.发出tcp连接请求,封装成tcp包,建立tcp连接(三次握手)
通过tcp套接字,发送一个请求报文
请求报文三部分:请求行,请求头,请求数据
3.web服务器接受请求,返回http响应
web服务器解析请求后定位请求资源。把请求资源的副本写入tcp套接字,使客户端读取。
响应报文三部分:状态行,响应头,响应数据
4.释放tcp连接
web服务器主动关闭tcp套接字,释放tcp连接,客户端被动关闭tcp套接字,释放tcp连接。
5.客户端解析内容
客户端先解析状态行,根据状态行中的状态代码确定请求是否成功;
之后解析每一个响应头,确认文档的字节数,文档的字符集等;
然后读取响应数据html,根据html语法进行格式化,在客户端(浏览器)显示。
注:
套接字:TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口。
DNS:(Domain Name System,域名系统)万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
客户端:浏览器,网络爬虫或其他工具
封装:(Encapsulation)应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),封装。
TCP/IP协议栈与数据包封装图文
版权声明:本文标题:HTTP和HTTPS 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732054366h1519329.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论