1. HTTP协议简介
超⽂本传输协议:是一种应用于分布式、协作式和超媒体信息系统的应⽤层协议。
HTTP是万维⽹的数据通信的基础。
2.HTTP 请求响应的步骤
2.1 客户端连接到Web服务器
⼀个HTTP客户端,通常是浏览器,与Web服务器的HTTP端⼝(默认为80)建⽴⼀个TCP套接字连接。
2.2发送HTTP请求
通过TCP套接字,客户端向Web服务器发送⼀个⽂本的请求报⽂,⼀个请求报⽂由请求⾏、请求头部、空⾏和请求数据4部分组成。
2.3 服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。⼀个响应由
状态⾏、响应头部、空⾏和响应数据4部分组成。
2.4 释放TCP连接
在HTTP/1.0中默认使⽤短连接。也就是说,客户端和服务器每进⾏⼀次HTTP操作,就建⽴⼀次连接,任
务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web⻚中包含有其他的Web资源
(如JavaScript⽂件、图像⽂件、CSS⽂件等),每遇到这样⼀个Web资源,浏览器就会重新建⽴⼀个
HTTP会话。
⽽从HTTP/1.1起,默认使⽤⻓连接,⽤以保持连接特性。使⽤⻓连接的HTTP协议,会在响应头加⼊这⾏
代码:
Connection:keep-alive
在使⽤⻓连接的情况下,当⼀个⽹⻚打开完成后,客户端和服务器之间⽤于传输HTTP数据的TCP连接不
会关闭,客户端再次访问这个服务器时,会继续使⽤这⼀条已经建⽴的连接。Keep-Alive不会永久保持
连接,它有⼀个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现⻓连接需要客 户端和服务端都⽀持⻓连接。
HTTP协议的⻓连接和短连接,实质上是TCP协议的⻓连接和短连接。
2.5 客户端浏览器解析HTML内容
客户端浏览器⾸先解析状态⾏,查看表明请求是否成功的状态代码。然后解析每⼀个响应头,响应头告知以下为若⼲字节的HTML⽂档和⽂档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法 对其进⾏格式化,并在浏览器窗⼝中显示。
例如:在浏览器输入URL之后,用户按下回车会有以下的几个步骤。
1:浏览器会向DNS服务器请求解析该域名中对应的IP地址
2:解析出IP地址后,会根据该IP和默认端口80,与服务器建立TCP连接
3:浏览器发出读取文件(这里指的是URL中域名后面对应的文件)的HTTP请求,该请求会作为TCP三次握手的第三次发送给服务器。
4:服务器对浏览器做出响应,并把对应的html页面发送给浏览器
5:再由浏览器显示该页面的内容
但是HTTP是一种不保存的状态,就是无状态协议,简单来说就是HTTP自己不对请求与响应做保存。
3.HTTP请求⽅法
HTTP/1.1协议中共定义了⼋种⽅法(也叫“动作”)来以不同⽅式操作指定的资源:
GET
向指定的资源发出“显示”请求。使⽤GET⽅法应该只⽤在读取数据,⽽不应当被⽤于产⽣“副作⽤”的操作 中,例如在Web Application中。其中⼀个原因是GET可能会被⽹络蜘蛛等随意访问。
HEAD
与GET⽅法⼀样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本⽂部分。它的好处在于,使⽤这个⽅法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)
POST
向指定资源提交数据,请求服务器进⾏处理(例如提交表单或者上传⽂件)。数据被包含在请求本⽂ 中。这个请求可能会创建新的资源或修改现有资源,或⼆者皆有。(用于修改资源)
PUT
向指定资源位置上传其最新内容。
DELETE
向服务器请求删除Request-URI所标识的资源(指定删除)。
TRACE
回显服务器收到的请求,主要⽤于测试或诊断(显示服务器收到的请求)
OPTIONS
这个⽅法可使服务器传回该资源所⽀持的所有HTTP请求⽅法。⽤'*'来代替资源名称,向Web服务器发送 OPTIONS请求,可以测试服务器功能是否正常运作。
4:两种开发模型
静态网页、动态网页
静态网页:无法对网页实现在线更新,无法实现交互功能,例如搜索、登陆等
动态网页:简单来说就是可以对网页实现在线更新,根据用户输入的内容,呈现出不同的页面
动态网页的模式:
⑴C/S⼜称Client/Server或客户/服务器模式。服务器通常采⽤⾼性能的PC、⼯作站或⼩型机,客户端 需要安装专⽤的客户端软件。如QQ,微信等软件
B/S是Brower/Server的缩写,客户机上只要安装⼀个浏览器(Browser)。Browser/Server是建⽴在⼴域⽹的基础上的(直接访问网页即可完成所需操作)
⑵CS和BS结构各⾃的优、缺点
(1)C/S
客户端需要安装专⽤的客户端软件。⾸先涉及到安装的⼯作量,其次任何⼀台电脑出问题,如病毒、 硬件损坏,都需要进⾏安装或维护。还有,系统软件升级时,每⼀台客户机需要重新安装,很多时候的新功能必须要用户升级才能够使用,如果用户不升级也没办法,其维护和升级成本⾮常⾼。但是现在移动端很多人不愿意输入网址很麻烦,直接下载客户端软件就可以很快速的访问。
(2)B/S
B/S最⼤的优点就是可以在任何地⽅进⾏操作⽽不⽤安装任何专⻔的软件。只要有⼀台能上⽹的电脑就 能使⽤,客户端零维护。系统的扩展⾮常容易,只要能上⽹,就可以使⽤了。甚⾄可以在线申请,通过 公司内部的安全认证(如CA证书)后,不需要⼈的参与,系统可以⾃动分配给⽤户⼀个账号进⼊系统。