HTTP
HTTP协议(HyperText Transfer Protocol超文本传输协议)是因特网上应用最广泛的一种网络协议,所有www文件都必须遵守这个标准。
HTTP是一个基于TCP/IP通信协议来传递数据。
HTTP工作原理
HTTP协议工作于客户端—服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(web服务器)发送所有请求。
web服务器根据接受的请求,向客户端发送响应信息。
HTTP默认端口:80,也可以改为8080或者其他端口。
⚠️注意事项:
- HTTP是无连接:无连接就是限制每次连接只处理一个请求,并收到客户的应答后即断开。采用这种方式可以节省传输时间。
- HTTP是媒体独立的:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送
- HTTP是无状态:无状态是指协议对于事物处理没有记忆能力。缺少状态意味着如果后续处理需要之前的信息,则必须重新传,导致每次连接传送的数据量增大
通信流程:
Web Browser网络浏览器 <—— HTTP协议 ——> HTTP Server <———> CGI Program(Common Gateway Interface通用网关接口) <———> Database数据库
HTTP请求方法
1.0: GET,POST,HEAD
1.1:OPTIONS,PUT,PATCH,DELETE,TRACE 和 CONNECT
状态码
200 — 请求成功
301 — 资源被永久转移到其它URL
404 — 请求的资源不存在
500 — 内部服务器错误
HTTPS
HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)超文本传输安全协议, 是以安全为目标的通道,在http的基础上通过传输加密和身份验证保证了传输过程的安全性。HTTP+SSL层。
主要通过数字认证、加密算法、非对称密钥等技术完成数据加密实现互联网传输安全保护,主要设计目标:
- 数据保密性:保证数据内容在传输过程中不会被第三方查看
- 数据完整性:及时发现被第三方篡改的传输内容,如果调包,能轻松发现并拒收
- 身份校验安全性:保证数据到达期望的目的地
优缺点
-
确保数据发送到正确的客户机和服务器
-
可防止数据在传输过程中被窃取、改变、确保数据的完整性
-
是线性架构中最安全的解决方案,虽不是绝对安全,但大幅增加了中间人攻击的成本
-
相同网络环境下,https协议会使页面的加载时间延长近50%,增加10%—20%的耗电,还会影响缓存,增加数据开销和功耗
-
SSL证书的信用链体系并不完全的安全
-
成本增加
端口
一台机器可以提供不同的端口
http服务最好使用 80 端口
https最好使用443端口
ftp最好使用21端口
一共有65535个端口
规则
0-1023号端口是留给系统的,管理员权限才能使用
http-server默认端口是 8080
com,cn,xyz是顶级域名
baidu,google,zehime是二级域名
www是三级域名
ip
- 内网IP
路由器会在家里创建一个内网,内网中的设备使用内网IP,一般为192.168.1.1 - 外网IP
路由器连上电信服务器就会被分配一个外网IP,这就是在互联网中的地址,路由器没有固定的外网IP - 特殊的IP
127.0.0.1 表示自己
localhost 通过 hosts 指定为自己
0.0.0.0 不表示任何设备
IP 和 端口缺一不可
使用ping qq.com可以查看qq网站的 IP 地址
一个域名可以对应不同的 IP
一个 IP 可以对应不同的域名
域名 和 IP 是怎么对应起来的
是 通过 DNS (Domain Name system)
浏览器会向 DNS 服务器询问 域名 对应的 IP ——————>> 返回一个 IP ——————>> 浏览器向对应 IP 的 80/443 端口发送请求
URL
协议 + 域名(IP)+ 端口号 + 路径 + 查询字符串 + 锚点
curl命令
用curl 发http请求
curl -v http://www/baidu.com
nslookup命令
nslookup 域名
查询一个域名的A记录