HTTP学习笔记

HTTP (HyperText Transfer Protocol), 中译:超文本传输协议。

HTTP基于TCP/IP通信协议来传输数据,为Web浏览器与Web服务器之间通信而设计。

特点

  • 无连接
  • 无状态
  • 媒体独立

备注: 所谓长短连接,说的是TCP连接的复用与否。

WWW

WWW = URL + HTTP + HTML

IP:

  • 如何定位一个设备
  • 如何封装数据报文,以同其他设备交流

端口

  • HTTP 80
  • HTTPS 443
  • FTP 21

域名

  • 单一域名绑定多个IP(负载均衡)
  • 单一IP对应多个域名(共享主机)

DNS

域名解析服务
工具:nslookup

路径

1
2
3
4
5
6
查询参数
同一页面不同结果
?
#
k=v key=value
<https://www.baidu.com/s?wd=hello&pn=20#5>

URL示例

协议 + 域名 + 路径 + 查询参数 + 锚点
备注:锚点不支持中文(不发送给服务器)

请求 & 响应

请求的发送

  1. Chrome
  2. curl

基本概念

UserAgent 用户代理

请求

1
2
3
4
5
6
请求动词 路径+查询参数 协议名/版本
Host: 域名 or IP
Accept: text/html
Content-Type: 请求体的格式
回车(即空行)
请求体

细节:

  • 请求行,请求头,请求体
  • Get Post Put Patch Delete
  • RFC 2612 第五章
1
curl -v -x POST --data '上传内容'  host:port

响应

1
2
3
4
协议名/版本 状态码 状态字符串
Content-Type: 响应体格式
回车(即空行)
响应体(下载内容)

细节:

  • 状态行,响应头,响应体
  • 常见状态码(重要)
  • RFC 2612 第六章

HTTP学习笔记
http://example.com/2024/12/30/HTTP学习笔记/
作者
Ray
发布于
2024年12月30日
许可协议