由于2020 的黑天鹅的到来,让2019的对自己新的一年的的期许大打折扣,好在自己对编程的热情并没有因为疫情的到来而压抑,而是热情更高,工作至今,没有一个让自己觉的做的产品可以拿出手的,或者说能拿的出手的产品,希望在自己职业生涯结束的时候,能有一个让自己觉的有点小骄傲的的成品出现
1. 要了解http 就要知道socket 和tcp/ip
- socket io 流的一种借口形式
- tcp/ip 是socket 的一种实现方式,是网络传输的一种规则
- http 是tcp/ip 的的子集,或者说是导出类
用oop 的说法是tcp/ip 是实现了socket 的接口,http是对tcp/ip 的一种具体实现
1.1 tcp/ip协议组(网络协议)
- 应用层 :提供应用服务时的通信活动,http 就存在这一层
- 传输层 : 服务于应用层,提供两端的数据传输,tcp 协议就属于这一层,是一种规则,字节流
- 网络层:就是具体通过哪种路径传输,传给谁,ip 协议就是在这一层,数据包在这一层流动
- 数据链路层: 硬件的一些数据控制,网卡,光纤呀,操作系统等等
通常我们给的 是域名而不是ip ,是靠一个位于传输层的DNS 协议,他是把域名解析为 ip 地址;
2 URL和URI
- URL同一资源标识符 比如www.baidu.com
- URI同一资源定位符,他是基于某个协议下的,比如http,tcp
URL 是uri 的一个子集,uri 表明是某个互联网的资源,url 是具体的地址,或者说url 是uri 的更加具体的一种形式,
3 http 内容
GET / index.html HTTP/1.1
HOST: hackr.jp content-length: 362 content-type
name=libo&password=123456
分析下上面的http 的的报文
- get 为请求的方法
- index.html 资源对象也是我们长说的url
- HTTP/1.1 为http 协议的版本号
- HOST: hackr.jp 为请求首部字段
- name=libo&password=123456 为请求的内容,或者说报文主体
3.2 服务器返回
HTTP1.1 200 OK
DATA: TUE Content-type: text/html
<html>
- HTTP1.1 200 OK 协议版本号 状态码 状态码 原因短语
- ATA: TUE Content-type: text/html 相应首部字段
顺便说下Http 的记忆是和小鱼 的记忆是一样的 不做状态的保存,为了使这个小鱼有记忆 就应用而生了cookie,和配合服务器玩的token,同时http1.0 也不是持久化,为了避免每次持久化造成的,服务器的压力,1.1 引入了keep-alive ,q前后两端没有说断开的时候,两者都不可以断开;
cookie 和token 不同的是cookie 是前后两端在首部字段内操作状态标识
content-type: 请求和返回实体类型
网友评论