HTTP(超文本传输协议)笔记(一)

定义

超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议。

特点

遵循经典的客户端-服务端模型

无状态协议,服务器不会在两个请求之间保留任何数据(状态)

基于TCP/IP层

​ 客户端和服务端通过交换各自的消息来交互。由像浏览器这样的客户端发出的消息叫做 requests,被服务端响应的消息叫做 responses。

用途

传输超文本文档

传输图片、视频

向服务器发送HTML表单

根据网页请求,获取部分web文档内容更新网页

HTTP的组件系统

客户端

user-agent 客户端通常由浏览器来扮演

作为一个发起请求的实体

客户端展现网页的过程

客户端首先发起一个请求来获取页面的HTML文档,然后解析其中的资源信息发送其它请求,获取到CSS和执行脚本来渲染页面布局,以及一些其它页面资源(图片、视频等)。浏览器把这些资源整合在一起,就构成了一个完整的文档,即网页。

服务端

来服务并提供给客户端web文档。虚拟上理解为一个机器,实际上可以是很多计算机组成的计算机集群,或者是大型的数据中心(数万到数十万台机器)。

代理

在浏览器和服务器之间有许多计算机和其它设备转发了HTTP消息。表现在应用层的被称为代理。

代理的作用

缓存(可以是公开的也可以是私有的,像浏览器的缓存)

过滤

负载均衡

认证

日志记录

HTTP的基本性质

HTTP是简单的

大体上设计的简单易读,报文能够人为读懂。

HTTP是可拓展的

在 HTTP/1.0 中出现的 HTTP headers 让协议扩展变得非常容易。只要服务端和客户端就新 headers 达成语义一致,新功能就可以被轻松加入进来。

HTTP是无状态,有会话的

HTTP是无状态的:在同一个连接中,两个执行成功的请求之间是没有关系的,使用Cookies可以创建有状态的会话。

HTTP和连接

HTTP是基于传输层的TCP协议,TCP是面向连接的。在每次通信过程中,客户端会和服务端建立TCP连接。

HTTP流

当客户端想和服务端进行交互时,过程如下:

1.打开一个TCP连接,被用来发送一条或者多条请求,用来接收响应消息。

2.发送一个HTTP报文

3.读取服务端响应的报文信息

4.关闭连接或者为后续请求重用连接

HTTP报文

HTTP请求

一个HTTP的method,经常由一个动词或者名词来定义客户端的行为。常用的有GET,POST,HEADER,OPTION。

path:获取资源的路径

HTTP协议版本号

为服务端表达其它信息的头部headers

对于像post这样的方法,报文的body就包含了发送的信息。

HTTP响应

HTTP协议版本号

一个状态码,告诉客户端请求成功或者失败,以及失败的原因。

个状态信息,这个信息是非权威的状态码描述信息,可以由服务端自行设定。

HTTP headers,与请求头部类似。

可选项,比起请求报文,响应报文中更常见地包含获取的资源body。

基于HTTP的APIs

基于HTTP的最常用API是 XMLHttpRequest API,可用于在客户端和服务器之间交换数据。

发布了4 篇原创文章 · 获赞 7 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/cijiancao/article/details/104430046
今日推荐