C/s架构:
socket、serversocket、awt/swing做一个客户端软件
建好socket连接后,通过IO流交换数据。数据格式由各个开发者自己确定,
B/C架构:
浏览器也是一种客户端软件
HTTP协议定义了浏览器和服务器通讯的基本规则之一
浏览器和服务器之间的交互:
1、交互模式是:请求、响应。
2、客户端先发出请求,服务器根据请求内容发送响应内容。
客户端发出请求的格式应该是什么样的?
a、首先服务器的地址、端口、资源地址。请求行
b、请求头
c、请求实体 (存放客户端的想要向服务器上传的数据)
注:客户端向服务器传参,如果将参数放到请求行,即为get方式!如果将采参数放到请求实体中,即为post方式。
服务器受到请求内容后发送响应内容:
a、状态行(200、404、500)
b、响应头
c、响应实体
服务器根据请求内容发送响应内容:
a、如何收到请内容?
1、建立监听。ServerSocket s.accept()
2、启动一个线程(轻量级的进程),为请求的客户提供服务
3、为了封装客户端提供的请求信息,于是我定义一个对象:HttpServletRequest对象。
4、根据请求行(URL)(为了封装回送给客户端 相应内容,我们定义了一个对象:HttpServletResponse对象)
b、根据请求内容调用响应的程序(servlet)
1、我们通过web.xml中定义的url和servlet的关系,找到相应的serlvet程序
2、于是我们定义了HttoServlet
service(HttpServiceRequest req , HttpServiceResponse response)方法
3、将response对象中的信息,转义成基于http协议的相应内容,再将这些响应内容通过socket传送 给客户端。
c、向客户端发送响应内容
为了统一处理上述流程,于是我们编写了一个程序,叫做Tomcat服务器。 我们也把服务器叫做web容 器,servlet容器
下面要解决的问题就是怎么样使我们的Servlet程序,更加规范、更加强大?
1、浏览器发给服务器的请求内容。HttpServletRequest对象
2、服务器回送给浏览器的相应内容。HttpServletResponse对象
3、servlet类读取web.xml中自己的配置信息。ServletConfig
4、需要读取web.xml中的公共信息<contxt-param>。 ServletContext
5、将所有的servlet放入一个容器中统一管理。ServletContext
6、保存以前操作的状态。 客户端保存Cookie 服务器保存Session
这时,我们发现servlet擅于做业务逻辑处理,但是不善于做页面展示的代码处理。于是我们队servlet进行了改进处理,jsp诞生了!!! jsp也是servlet,也是java类。你访问一个jsp实际上是执行了对应的java类。我们需要一个统一的转义程序,可以将jsp文件内容转义成java类代码,于是产生了jsp引擎(一般服务器软件自带了这样的功能)。
ajax----->异步模式。局部刷新效果。
通过增加XMLHttpRequest对象,使用XHR对象发送请求,获得数据后,也是首先传给XHR对象,再通过 javascript代码操作dom模型,实现局部刷新效果。
3、客户端受到响应内容之后,该如何这些内容?
a、首先HTML诞生了。<b>哈哈哈</b> <font color=red>五星红旗</font>
b、希望HTML元素可以动起来,这样就诞生了javaScript(livescript)
c、我们希望有个技术可以精确的、更加漂亮的控制页面元素的显示。于是CSS诞生了。