http

TCP/IP协议族分为以下5层。
应用层:预存了各类通用的应用服务。比如:FTP(文件传输协议)、DNS(域名系统)、HTTP(超文本传输协议)。
传输层:TCP(传输控制协议)、UDP(用户数据报协议)。
网络层:用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。含IP网际协议。
数据链路层:链路接口。
物理层:网络硬件。

URI 统一资源标识符。 URI有两种形式,URL和URN
URL 统一资源定位符。包含三部分,协议类型、服务器地址、资源的路径
URN 统一资源名。通过唯一名称找到资源,不管是在哪个服务器上。

三次握手:
1、发送端首先发送一个带SYN标志的数据包给对方:数据包发给你了。
2、接收端收到后,回传一个带有SYN/ACK标志的数据包:我收到你发给我的数据包了。
3、最后,发送端再传回一个带ACK标志的数据包:明白。

客户端:
HTTP协议:生成针对目标服务器的HTTP请求报文。
TCP协议:将HTTP请求报文分割成报文段。
IP协议:搜索对方的地址,一边中转一边传送。

服务器:
TCP:将接收到的报文段重组成报文。
HTTP:对请求内容进行处理。

Web的结构组件
代理
缓存
网关(转换成其他协议)
隧道(进行盲转发的特殊代理)
Agent代理(代表用户发出HTTP请求的客户端程序,如Web浏览器。其他的,如网络蜘蛛,Web机器人)

报文 分为请求报文和响应报文。
报文分为三部分:
起始行
首部(以空行结束)
主体

首部分类
通用首部
请求首部
响应首部
实体首部(描述主体的长度和内容,或者资源自身)
扩展首部(规范中没有定义的新首部)

方法
GET
POST
PUT
DELETE
HEAD(服务器在响应中只返回首部,不会返回实体的主体部分)
OPTIONS(询问服务器或特定资源支持哪些方法)
TRACE(允许客户端在最终请求发给服务器时,看看它变成什么样子了)

常见的状态码
100:说明收到了请求的初始部分,请客户端继续。
101:说明服务器正在根据客户端的指定,将协议切换成Update首部所列的协议。

200:请求成功。
204:no content,没有实体的主体部分可以返回。
206:范围请求。

301:永久重定向,新的URL位于响应报文的Location首部。
302:临时重定向。
303:临时重定向。
304:not modified,资源未被修改,可以使用缓存。
307:临时重定向。

400:发送了错误的请求。
401:未授权。
402:还未使用,保留以作未来之用。
403:拒绝请求,但不想说明拒绝原因。
404:无法找到所请求的URL。
405:method not allowed,请求中带有所请求的URL不支持的方法。
406:not acceptable,实体类型不是可接受的。

500:请求发生错误。
503:服务器暂时不可用。

首部字段
通用首部字段:
Cache-Control
Connection

请求首部字段:
Host
Referer
User-Agent
Origin

Accept
Accept-Charset
Accept-Encoding
Accept-Language

Authorization
Cookie

响应首部:
Set-Cookie

实体首部:
Allow
Location

Content-Type
Content-Length

ETag
Expires
Last-Modified

HTTP事务的时延
除非客户端或服务端超载,或正在处理复杂的动态资源,否则HTTP时延就是由TCP网络时延构成的。
这些TCP网络时延的大小取决于硬件速度、网络或服务器的负载,请求和响应报文的尺寸,以及客户端与服务器之间的距离。

https
就是http + ssl,ssl(安全套接字层),有加密、认证、完整性保护的作用。

缓存
强缓存:如果缓存没有过期,则直接使用缓存,不发送HTTP请求。
有两种:
http 1.0
Expires讲的是到期时间,但如果修改了本地时间,就有问题了。
http 1.1
Cache-Control讲的是有效时长。
总的来说,强缓存有个问题,如果资源已经发生改变,你还直接使用缓存?

协商缓存:发送HTTP请求并携带缓存标识,服务器根据缓存标识判断,如果资源没有发生改变,则返回304,告知浏览器使用缓存;如果资源发生改变了,则返回新的数据和新的缓存标识,返回200。
http 1.0
Last-Modified和If-Modified-Since讲的是最后修改时间,有个问题,就是本地打开缓存也会修改这个时间。
http 1.1
Etag和If-No-Match将的是当前资源文件的一个唯一标识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值