万维网HTTP

← 返回 MOC | ← 主页


HTTP协议

HTTP协议定义了客户端和服务器之间交互的消息内容和步骤(很简单,就是客户端请求,然后服务器回复)

请求

对什么(/quartz/index.html)什么操作(称为为方法)方法描述请求的响应
对的是URIGET我想访问你的某个资源返回资源
POST我想把这条信息告诉你可能是返回处理过的结果
PUT我想把这个文件传输给你返回状态码,比如已经存在于服务器上
HEAD把那个相关信息告诉我返回有效期,更新日期等等
DELETE快把那个文件删掉吧~返回状态码
OPTIONS你支持那些方法?GET,HEAD…
CONNECT向服务商的隧道传输发送请求…OK,然后进入网络隧道

URI

在了解URI之前先看看URL,他是URI的子集

URL是URI的子集,强调资源的位置和访问方式

URL常见的种类:

http: / https: 访问Web资源, ftp: 下载和上传文件, mailto: 电子邮件地址 ,news: 新闻组文章

URL示例:

https://evil0knight.github.io/quartz/

  • 服务器名称是 evil0knight.github.io
  • 文件路径是 /quartz/
  • 这通常省略了默认文件,完整路径可理解为 /quartz/index.html

URI示例:sftp://admin:P@ssw0rd123@dev-server.research.internal:8080/v2/projects/quartz/config.yaml?format=json&mode=readonly#section-security

组成部分示例值是否可选作用
协议方案sftp一般必选说明用什么协议访问资源
登录信息admin:P@ssw0rd123可选提供身份认证信息
服务器地址dev-server.research.internal一般必选说明资源在哪台主机上
服务器端口号8080可选说明访问主机的哪个端口
带层次文件路径/v2/projects/quartz/config.yaml可选说明主机上的具体资源位置
查询字符串format=json&mode=readonly可选给服务器传附加参数
片段标识符section-security可选定位资源内部的某一部分

持久连接与管线化

因为传输页面的时候,不仅有文本还有其他的资源,比如图片,那么每次传输都会多次断开,造成资源浪费

所以http1.1和部分的http1.0是持久连接的,除非一方断开

另外,在持久连接的基础上,增加了管线化,是请求端不用等待回复可以继续请求

Cookie状态管理🍪

HTTP是无状态的,无法根据之前的状态进行本次的请求处理,这很不方便

Cookie技术通过在请求和相应报文中写入Cookie信息来控制客户端的状态

首部报文会携带Cookie的sid=123456781374618(随便输的,意思就是有个sid方便服务器记录)


如果你正在跟随梳理, 返回 MOC←