web服务的一些基础笔记

1. MIME(Multipurpose Internet Mail Extension,多用途互联网邮件扩展)

它是SMTP能够传输非文本格式文件的根源,将他引入到HTTP,那么HTTP也可以传输图片声音等非文本格式的文件,所以他也是HTTP可以传输非文本格式文件的根源。

将非文本数据在传输数据前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够用相应的程序来打开。

2.flash,Applet(Java中),

Flash也是一种变成语言。可以有动态网页。

3.动态网页

服务器端存储的文档非HTML格式,而是编程语言开发的脚本。将Browser的参数传递给脚本,在服务器上执行一下,运行完成之后会生成html文档,这是临时生成的,并且将生成的文档发送给Browser。

4.php

.php不是一种纯文本文件,它是web服务器是web服务器根据一种协议运行.php文件生成html文件,发送给Browser。

5.缓存

http1.0引入了缓存了概念。简单来说就是用于存储之前浏览过的信息,比如说前进后退读取页面的速度很快,其实就是从缓存中读取的。将好多的内容直接缓存在本地中。刷新,是不管本地有没有缓存都会重新读取。所以不要没事别去刷新,那会增加你的流量。当然,你要是访问了不可见人的网站还是要清理一下的。

6.访问web的流程

将URL解析成IP(通过DNS服务器),这样就相当于在Browser中输入了IP。这样才继续向web服务器发送请求。服务器监听在某个端口。

7. http报文+TCP头+IP数据包包头。这里说一下http报文

http报文分为:请求报文、响应报文。

请求报文包括方法method、主机host、version、connection、head、body等等;

响应报文包括version、status状态码(1**纯信息、2**成功、3**重定向、4**客户端错误信息404表示请求了一个不存在的文件、5**服务器端错误信息)、reason-phrase(解释用)、headers、entity-body。

8.一个原生态的web服务器是不会解析动态网页的,解析是由一个特定的进程解析之后给web服务器再发送出去。

9.长连接

每一次获取一个资源就要四次握手断开,再下载又要三次握手。长连接就是在获取一个资源后不要立即断开,但是对于访问量很大的服务器会不好,因为其他的进程不会一直等着。

(空闲)超时断开。最多只允许获取多少对象。

长连接对于服务器的影响是非常大的。

10.多线程于单线程模型服务器

当很多进程请求的时候,单线程就是一个一个服务。多线程就是服务进程产生与他一样的进程,这个进程来服务一个进程,其他的请求也这样处理,这就是多线程服务器。

11.一个进程处理n个请求的服务器

每个请求有自己的状态,甚至可以向进程告知我已经获得了自己的资源对象。

12.多进程+每个进程可以处理多个请求的服务器

上面的10、11、12都是讲的是服务器的处理模型。

13.资源的获取方法HTTP METHOD

GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECTION

14.Client、Server

Client:IE、Firefox、Chrome、Opera、Safari

Server:Apache(httpd)、IIS、nginx、lighttpd、thttpd等等

应用程序服务器(不但可以处理静态的还可以在服务器内部处理动态的请求):IIS、tomcat(Apache,开源的,JSP)、Websphere(IBM,JSP)、Weblogic(Oracle)、JBoss(RedHat)

15.Apache (A Patchy Server之前一个戏称,后来就叫做Apache)

16.虚拟主机

它只有一个物理主机。虚拟主机的方法:基于IP的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机IP地址贵,端口有规定,所以用基于域名。

Q:域名还是要解析成IP,那为什么打开的站点不一样?A:在IP和Port都一样的时候,HTTP包头部的host不一样!所以照样可以使用不同的主机。

17.CGI(Common Gateway Interface)

这是早期的实现动态网页的技术。通过CGI,Apache能够调用外部的解释器,再将执行完的静态网页返回给Apache。

18.动态网站的分类

分为:客户端动态、服务端动态。主要是服务器端动态。因为客户端解释的话会带来很大的安全隐患,比如说给客户端发送了一个格式化的脚本,要是客户端执行了,那就完蛋了。

19.MVC(Model-View-Controller)

MVC是一种软件架构模式,把系统分为三个基本部分:模型(Model)(负责转发请求,对请求进行处理)、视图(View)(界面设计人员进行图形界面设计)、控制器(Controller)(程序员编写程序应有的功能,比如实现算法等等,还能让数据库专家进行数据管理和数据库设计)。

听上去跟“把解释器生成的文本的内容,与内同的标签分开产生”的技术有关。

 20.SSL(Secure Sockets Layer,安全套接层)

传输层安全协议(Transport Layer Secure,TLS)和SSL是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。

21.HTTP是无状态的

http协议是无状态的。同一个客户端这次请求和上次请求是没有对应关系的,都一样http服务器来说,他并不知道这两个请求来自同一个客户端。为了解决这个问题,Web程序引入了Cookie机制来维护状态。

Just like writing, coding is a work of creating!
原文地址:https://www.cnblogs.com/chenbuer/p/3841574.html