# HTTP和HTTPS

264 阅读4分钟

HTTP

HTTP协议(HyperText Transfer Protocol超文本传输协议)是因特网上应用最广泛的一种网络协议,所有www文件都必须遵守这个标准。
HTTP是一个基于TCP/IP通信协议来传递数据。

HTTP工作原理

HTTP协议工作于客户端—服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(web服务器)发送所有请求。
web服务器根据接受的请求,向客户端发送响应信息。
HTTP默认端口:80,也可以改为8080或者其他端口。

⚠️注意事项:

  1. HTTP是无连接:无连接就是限制每次连接只处理一个请求,并收到客户的应答后即断开。采用这种方式可以节省传输时间。
  2. HTTP是媒体独立的:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送
  3. 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层。
主要通过数字认证、加密算法、非对称密钥等技术完成数据加密实现互联网传输安全保护,主要设计目标:
  1. 数据保密性:保证数据内容在传输过程中不会被第三方查看
  2. 数据完整性:及时发现被第三方篡改的传输内容,如果调包,能轻松发现并拒收
  3. 身份校验安全性:保证数据到达期望的目的地

优缺点

  1. 确保数据发送到正确的客户机和服务器

  2. 可防止数据在传输过程中被窃取、改变、确保数据的完整性

  3. 是线性架构中最安全的解决方案,虽不是绝对安全,但大幅增加了中间人攻击的成本

  4. 相同网络环境下,https协议会使页面的加载时间延长近50%,增加10%—20%的耗电,还会影响缓存,增加数据开销和功耗

  5. SSL证书的信用链体系并不完全的安全

  6. 成本增加


端口

一台机器可以提供不同的端口
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记录