URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联 网上所处的位置)。可见 URL 是 URI 的子集。
//URI绝对格式
http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1
<-! 方案名://登录信息@服务器地址:端口号/文件路径?查询字符#片段标识符 >
https://blog.csdn.net/weixin_39780047/article/details/88850857
<协议>://<host>:<port>/<路径>
省略路径时,默认指向主页
http1.0是无状态的,每次访问数据时都要进行tcp的连接和释放。http1.1之后采用持续连接方式,tcp连接在完成请求后依然保留一段时间,可重复使用
代理服务器将最近的一些请求和响应暂存在本地中。当新请求到到达时,若代理服务器中包含相同资源,则返回暂存的请求响应。否则通过因特网获取请求响应并复制一份在本地(缓存服务器)
使用代理服务器的理由
利用缓存技术(稍后讲解)减少网络带宽 的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要 目的,等等。
http分为请求报文和响应报文
1** | 通知信息 |
---|---|
2** | 表示成功 |
3** | 重定向,还需要采取进一步行动 |
4** | 客户端错误,语法错误活无法完成请求 |
5** | 服务器错误,服务器在处理过程中发送生错误 |
常见状态:
首部字段名 | 说明 |
---|---|
Cache-Control | 控制缓存的行为 |
Connection | 逐跳首部、连接的管理 |
Date | 创建报文的日期时间 |
Pragma | 报文指令 |
Trailer | 报文末端的首部一览 |
Transfer-Encoding | 指定报文主体的传输编码方式 |
Upgrade | 升级为其他协议 |
Via | 代理服务器的相关信息 |
Warning | 错误通知 |
请求首部字段
首部字段名 | 说明 |
---|---|
Accept | 用户代理可处理的媒体类型 |
Accept-Charset | 优先的字符集 |
Accept-Encoding | 优先的内容编码 |
Accept-Language | 优先的语言(自然语言) |
Authorization | Web认证信息 |
Expect | 期待服务器的特定行为 |
From | 用户的电子邮箱地址 |
Host | 请求资源所在服务器 |
If-Match | 比较实体标记(ETag) |
If-Modified-Since | 比较资源的更新时间 |
If-None-Match | 比较实体标记(与 If-Match 相反) |
If-Range | 资源未更新时发送实体 Byte 的范围请求 |
If-Unmodified-Since | 比较资源的更新时间(与If-Modified-Since相反) |
Max-Forwards | 最大传输逐跳数 |
Proxy-Authorization | 代理服务器要求客户端的认证信息 |
Range | 实体的字节范围请求 |
Referer | 对请求中 URI 的原始获取方 |
TE | 传输编码的优先级 |
User-Agent | HTTP 客户端程序的信息 |
响应首部字段
首部字段名 | 说明 |
---|---|
Accept-Ranges | 是否接受字节范围请求 |
Age | 推算资源创建经过时间 |
ETag | 资源的匹配信息 |
Location | 令客户端重定向至指定URI |
Proxy-Authenticate | 代理服务器对客户端的认证信息 |
Retry-After | 对再次发起请求的时机要求 |
Server | HTTP服务器的安装信息 |
Vary | 代理服务器缓存的管理信息 |
WWW-Authenticate | 服务器对客户端的认证信息 |
实体首部字段
cookie
常用端口:443
HTTP+ 加密 + 认证 + 完整性保护 =HTTPS
Comet——保留响应
SPYD
SPDY 没有完全改写 HTTP 协议,而是在 TCP/IP 的应用层与运输层之 间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY 规 定通信中使用 SSL。
WebSocket
一旦 Web 服务器与客户端之间建立起 WebSocket 协议的通信连接, 之后所有的通信都依靠这个专用协议进行。通信过程中可互相发送 JSON、XML、HTML 或图片等任意格式的数据。 由于是建立在 HTTP 基础上的协议,因此连接的发起方仍是客户端, 而一旦确立 WebSocket 通信连接,不论服务器还是客户端,任意一方 都可直接向对方发送报文。
为了实现 WebSocket 通信,需要用到 HTTP 的 Upgrade 首部字 段,告知服务器通信协议发生改变,以达到握手的目的
特点
Web 应用端(服务器端)的验证
远程文件包含漏洞
思维导图
用单台虚拟主机实现多个域名
提 供 Web 托管服务(Web Hosting Service)的供应商,可以用一台服务 器为多位客户服务,也可以以每位客户持有的域名运行各自不同的网 站。这是因为利用了虚拟主机(Virtual Host,又称虚拟服务器)的功 能。
位于同一台服务器上的web服务器经过域名转换后,IP地址相同。因此在发送HTTP请求的时候,必须在host首部内完整指出主机名或域名的URI。
[x] URL和URI的区别
URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符)
URI:(Uniform Resource Identifier 的缩写,统一资源标识符)(代表一种标准)。
URI 属于 URL 更高层次的抽象,一种字符串文本标准。
URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。
GET | POST | |
---|---|---|
回退时 | 无害 | 再次请求 |
cache | 会 | 需要手动设置 |
编码 | URL | 多种编码 |
浏览器历史记录 | 保留 | 不保留 |
长度限制 | 受浏览器限制 | 无 |
参数数据类型 | ASCII | 任意 |
传递方式 | URL | request body |
传输数据包 | 1个 | 2个 |
两者本质上都是采用TCP协议进行传输,因此在传输过程中没有差异
[x] 幂等请求
HTTP幂等方法,是指无论调用这个url多少次,都不会有不同的结果的HTTP方法。
HTTP GET方法用于获取资源,不应有副作用,所以是幂等的。 GET请求可能会每次得到不同的结果,但它本身并没有产生任何副作用,因而是满足幂等性的。
调用多次的结果和调用一次的结果一致,如DELETE调用一次删除指定资源,再次调用无论该资源是否存在,依然删除该资源。因此其是幂等
原文:https://www.cnblogs.com/yezhh/p/11249784.html