-
HTTP 协议:全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协;
-
HTTP是面向事务的应用层协议,它是万维网能够可靠地交换文件的重要基础。
1、下面我们用HTTP/1.0更具体地说明在用户点击 http://www.xxx.com/ 后所发生的几个事件:
⑴、浏览器分析链接指向页面的URL;
⑵、浏览器向DNS请求解析出http://www.xxx.com/ 的IP地址;
⑶、DNS服务器解析出某WEB服务器的IP地址为192.168.0.1;
⑷、浏览器与服务器建立TCP连接
⑸、浏览器发出取文件命令;
⑹、服务器www.xpu.edu.cn给出响应,把文件index.htm发给浏览器;
⑺、释放TCP连接;
⑻、浏览器显示index.htm中所有文本。浏览器下载文件时,可以设置只下载其中文本部分,若要下载图像或声音,可再分别点击这些图标,每一次就重复执行类似于上述的八个操作。HTTP使用TCP作为运输层协议,保证数据可靠传输,但HTTP协议本身是无连接的。
HTTP是无状态的。服务器并不记得客户端曾访问过它,如果页面没有更新,客户每次得到的响应相同。这样做简化了服务器设计,使服务器更容易支持大量并发HTTP请求。
-
什么是协议:一种约定,只有符合约定的才算合法数据。在网络中,计算机之间要相互遵守各种协议,只有这样网络上的数以万计的数据才不会显得非常混乱。
-
HTTP 协议格式:
- 请求头:描述请求或响应的基本信息;
- 请求行:使用 key-value 形式更详细地说明报文;
- 请求体:实际传输的数据,它不一定是纯文本,可以是图片、视频等二进制数据。
-
请求方法:
- GET:获取资源
- POST: 传输实体主体
- PUT: 传输文件
- HEAD: 获得报文首部
- DELETE: 删除文件
- OPTIONS: 访问支持的方法
- TRACE: 追踪路径
- CONNECT: 要求用隧道协议连接代理
- LINK: 建立和资源之间的联系
-
GET 和 POST的比较
-
GET:
URL 里面的 query string 可以为空,也可以不为空 GET 请求的 body 一般是空的
-
POST:
URL 里面的 query string 一般是空的 POST 请求的 body 一般不为空 不幂等
-
-
Cookie是这样工作的,当用户张三浏览某个使用cookie的网站时,该网站的服务器就为张三产生一个唯一的识别码。并以此作为索引在服务器的后端数据库中产生一个项目。接着在给张三的HTTP响应报文中添加一个叫做set-cookie的首部行。当张三收到这个响应时,浏览器就在它管理的特定cookie文件夹中添加一行,其中包括这个服务器的主机名和识别码。当张三继续浏览这个网站时,每发送一个HTTP请求报文,其浏览器就从cookie文件中取出该网站给出的识别码,并放到HTTP请求报文的cookie首部行中。于是该网站就能跟踪用户张三了,张三对服务器来说就是识别码。
Cookie的使用简化了购物过程,但也受到争议。
可以设置拒绝cookie。
-
状态码:
分类 分类描述 1xx 信息,服务器收到请求,需要请求者继续执行操作 2xx 成功,操作被成功接收并处理 3xx 重定向,需要进一步的操作以完成请求 4xx 客户端错误,请求包含语法错误或无法完成请求 5xx 服务器错误,服务器在处理请求的过程中发生了错误 -
常见状态码&含义
200 - 请求成功,已经正常处理完毕 301 - 请求永久重定向,转移到其它URL 302 - 请求临时重定向 304 - 请求被重定向到客户端本地缓存 400 - 客户端请求存在语法错误 401 - 客户端请求没有经过授权 403 - 客户端的请求被服务器拒绝,一般为客户端没有访问权限 404 - 客户端请求的URL在服务端不存在 500 - 服务端永久错误
-
HTTPS