http请求过程

                            

1.应用程序、进程ID、端口之间的关系是什么?

a.相对于操作系统,操作系统管理着所有的应用程序,每个应用程序都有自己的名字,应用程序的名字还有相同的。操作系统在管理着这些运行的程序的时候,首先要给它们起一个名字用于区分不同的应用程序,这个名字就叫做进程ID。进程ID是相对于操作系统的。

b.应用程序在传递信息的时候,如何识别不同的应用程序。这就要给应用程序取一个名字,这个名字就叫做端口。例如,服务器从网卡接受一条报文,层层剥开,发现IP报文中的目的端口是 80,就知道该条信息是传递给 80端口的。然后操作系统就把这条报文发送给 80端口开放的程序apache


http请求报文由请求行、请求头部、空行、请求包体四部分组成,如下图:

                                                  

2.web服务器(apache、tomcat)是如何解析报文的?

   a.浏览器请求服务器资源

b.本地操作系统把请求报文的数据打包起来,放在TCP/CP协议报文中在网络中传输

c.报文到达请求服务器

d.服务器拆开报文发现,这条信息是给 80 端口的,把信息发送给 80 端口

e.web服务器(apache)从 80 端口接收到http报文

f.读取报文信息,并存储到本次请求中,作为资源供本次请求中执行的程序使用

g.在报文信息中找到 url 信息

h.根据 url 信息在 web 服务器上查找该资源,找到动态页面(也就是执行中的程序)

i.执行该页面中的程序代码。(可以是 jsp,php,ruby等写的脚本语言)

j.在执行该页面,该页面中含有要访问数据库的代码、执行代码

k.web服务器给数据库发送信息。发送到数据库的端口(mysql 3360)

l.数据库收到 web 服务器发来的信息,执行数据库程序,返回给 web 服务器信息

m.web 服务器收到数据库返回的信息,继续执行该页面下面的代码

n.该页面中的所有代码执行完毕

o.生成临时静态网页,通过 web 服务器的 80 端口返回给客户端


3.http请求什么时候经过Apache?它的作用是什么?

   a.服务器收到 http 报文后,操作系统会把报文逐层拆开,找到 ip 报文中的端口号 80

b.Apache服务器从 80 端口接收到 http 请求报文,把请求报文拆开,找到客户端请求的服务器的方法 get/post、url、版本协议、请求头部(键值对)等信息

c.http 请求报文

1.get/post,post请求头部含有客户端传过来的键值对信息,get没有,post含有更多客户端信息

2. url 是资源在 Apache 上的位置

3.请求头部,以键值对的形式存在。SESSIONID存在这里,也可以是客户端添加到请求报文里的信息,例如网页中Form中的信息放在键值对中


4.服务器收到浏览器请求后,怎样从数据库中获得相应信息?

服务器和数据库都是应用软件。应用软件之间进行数据交流一般有两种形式。一种是:两个独立的应用程序之间进行交流,这种数据交流可以跨网络也可以不跨网络。例如,跨网络的这种Browser-Sever这种形式。两种软件间进行数据交互,是需要端口的,端口就像一个允许接受信息和发送信息的大门,他们之间通过端口进行数据交流。另一种是不跨网络的,例如Sever-Database这种形式,也是通过端口进行数据交流。另一种形式是应用程序内的数据交流,一个应用程序内可能有很多小程序(即线程),这些小程序和主程序之间是通过另一个大门交流的,这个大门叫做进程 ID,也就是 windows 任务管理器表现的那种形式。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值