开发架构
- C/S架构:Client与Server ,
客户端
与服务器端架构。 - B/S架构:Browser与Server,
浏览器
端与服务器端架构,通过HTTP/HTTPS协议请求资源。
HTTP协议
HTTP协议:Hyper Text Transfer Protocol(超文本传输协议),用于服务器与本地浏览器之间传输超文本
的传送协议。
超文本:指含有指向其他资源链接
内容的文本。不仅是文字,还有多媒体、视频、图片、动画等。
特性
请求 & 相应
请求从客户端发出,服务器端响应该请求并返回。
服务器端在没有接收到请求之前不会发送响应。
无连接
限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
采用这种方式可以节省传输时间。
无状态(重要)
HTTP协议自身不对请求和响应之间的通信状态进行保存。每当有新的请求发送时,就会有对应的新响应产生。
这是为了更快地处理大量事务,确保协议的可伸缩性。
为了实现保持状态功能, 于是引入了Cookie技术。
请求与响应
用于HTTP协议交互的信息被称为HTTP报文。
请求端(客户端)的HTTP报文叫做请求报文
;
响应端(服务器端)的叫做响应报文
;
HTTP报文本身是由多行数据构成的字文本
。
请求协议
请求头
accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset:浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since:浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
X-Requested-With:XMLHttpRequest 代表通过ajax方式进行访问
User-Agent:请求载体的身份标识
请求体
给服务器的数据信息
请求方式:GET与POST请求
- GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456
- POST方法把提交的数据放在HTTP包的请求体中
- GET提交的数据大小有限制(浏览器对URL的长度有限制),而POST方法提交的数据没有大小限制,且携带的请求数据不可以明文方式连接在URL中
响应协议
响应头
Location:服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length:服务器通过这个头,告诉浏览器回送数据的长度
Content-Language:服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition:服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires:-1 控制浏览器不要缓存
Cache-Control:no-cache
Pragma:no-cache
响应体
根据客户端请求信息,发送指定数据
响应状态码(快速识别问题类型)
Cookie
工作原理
- 浏览器访问服务端,带着空的cookie,然后由服务器产生内容,浏览器收到相应后保存在本地;
- 当浏览器再次访问时,浏览器自动带上Cookie,服务器就能通过Cookie的内容来判断是“谁”。
- cookie的内容是由服务器自主设计的,客户端无法干涉
注意:不同浏览器之间是不共享Cookie。