HTTP协议:
超⽂本传输协议(英⽂:HyperText Transfer Protocol,缩写:HTTP)是⼀种⽤于分布式、协作
式和超媒体信息系统的应⽤层协议。HTTP是万维⽹的数据通信的基础。
HTTP请求/响应步骤:
DNS:用来将域名解析为真实的IP地址
套接字(Socket)指得是区分不同应用程序进程间的网络通信和连接,
主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号
1. 客户端连接到Web服务器
⼀个HTTP客户端,通常是浏览器,与Web服务器的HTTP端⼝(默认为80)建⽴⼀个TCP套接字
连接。例如:http://www.baidu.com。
2 发送HTTP请求
通过TCP套接字,客户端向Web服务器发送⼀个⽂本的请求报⽂,⼀个请求报⽂由请求⾏、
请求头部、空⾏和请求数据4部分组成。
3 服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。⼀个
响应由状态⾏、响应头部、空⾏和响应数据4部分组成。
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协议的⻓连接和短连接。
5 客户端浏览器解析HTML内容
客户端浏览器⾸先解析状态⾏,查看表明请求是否成功的状态代码。然后解析每⼀个响应头,响
应头告知以下为若⼲字节的HTML⽂档和⽂档的字符集。客户端浏览器读取响应数据HTML,根
据HTML的语法对其进⾏格式化,并在浏览器窗⼝中显示。
例如:在浏览器地址栏键⼊URL,按下回⻋之后会经历以下流程:
-
浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
-
解析出 IP 地址后,根据该 IP 地址和默认端⼝ 80,和服务器建⽴TCP连接;
-
浏览器发出读取⽂件(URL 中域名后⾯部分对应的⽂件)的HTTP 请求,该请求报⽂作为
TCP 三次握⼿的第三个报⽂的数据发送给服务器; -
服务器对浏览器请求作出响应,并把对应的 html ⽂本发送给浏览器;
-
浏览器将该 html ⽂本并显示内容;
HTTP请求方法:
HTTP/1.1协议中共定义了⼋种⽅法(也叫“动作”)来以不同⽅式操作指定的资源
**GET
向指定的资源发出“显示”请求。使⽤GET⽅法应该只⽤在读取数据,⽽不应当被⽤于产⽣“副
作⽤”的操作 中,例如在Web Application中。其中⼀个原因是GET可能会被⽹络蜘蛛等随意
访问。
HEAD
与GET⽅法⼀样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本⽂部
分。它的好处在于,使⽤这个⽅法可以在不必传输全部内容的情况下,就可以获取其中“关
于该资源的信息”(元信息或称元数据)。
**POST
向指定资源提交数据,请求服务器进⾏处理(例如提交表单或者上传⽂件)。数据被包含在
请求本⽂中。这个请求可能会创建新的资源或修改现有资源,或⼆者皆有。
*PUT
向指定资源位置上传其最新内容。
DELETE
请求服务器删除Request-URI所标识的资源。
TRACE
回显服务器收到的请求,主要⽤于测试或诊断。
OPTIONS
这个⽅法可使服务器传回该资源所⽀持的所有HTTP请求⽅法。⽤’'来代替资源名称,向
Web服务器发送 OPTIONS请求,可以测试服务器功能是否正常运作。
CONNECT
开发模式:
动态页面:可以进行实时更新
1.C/S⼜称Client/Server或客户/服务器模式。服务器通常采⽤⾼性能的PC、⼯作站或⼩型机,客
户端 需要安装专⽤的客户端软件。如QQ,微信等软件
2.B/S是Brower/Server的缩写,客户机上只要安装⼀个浏览器(Browser)。Browser/Server是建
⽴在⼴域⽹的基础上的.
各自优缺点:
CS: 优:把服务器的压力放到客户端上,解析等工作都放在客户端上
缺:实时性不强,例如qq不能保证所有的用户都更新新版本
BS: 优:不拘束于哪个浏览器,只要有网络就可以,同步和实时性强
缺:服务器的压力过大