一、资源
MIME文件类型
- text/html
- text/plain
- image/jpeg
- video/quicktime
- application/vnd.ms-powerpoint
URI 统一资源标识符
- URN 统一资源名(只要名字就能访问,很屌,很难实现)
- URL 统一资源定位符(现在都用这个,唯一地址)
二、事务
方法
- get 请求一个命名的资源
- put 提交一个命名的资源
- delete 删除一个命名的资源
- post 将客户端数据发送到服务器网关应用程序
- head 仅发送命名资源响应头
本来以为post,get是一对,原来是put,get一对,也好,长度一直,对仗工整
状态码
- 200 ok
- 302 重定向
- 404 没找到
web页面可以包含多个对象
三、报文
http报文是文本不是二进制,可以直接看,好调试,不过没有二进制严谨,各有利弊.
- 请求报文 request message
- 响应报文 response message
- 起始行: 描述http自身,固定结构 eg:http/1.0 get /tools.html; http/1.0 200 ok
- 首部字段: 一些键值对,固定结构 eg:content-type content-length
- 主体: 这里可以是二进制的
四、连接
TCP/IP
tcp基于ip,http基于tcp
连接,ip地址,端口号
- 从URL中解析主机名
- 通过DNS解析ip地址
- 解析端口号(如果有)
- 简历TCP服务
- 发送http报文
- 响应http报文
- 关闭连接,显示文档
Telnet
https://jingyan.baidu.com/article/2fb0ba4055e55800f3ec5f7a.html (windows下Telnet)
试了下百度,连接失败,没什么卵用
nc 全称netcat
可以写脚本,没试过,都21世纪用js+chrome不就行了么
五、协议版本
知道现在用的基本上都是http1.1就行了,后面可能会用2.0
六、web的结构组件
web浏览器
web服务器
代理
接收客户端的http请求,修改后,再发送给服务器,
缓存
web缓存(web cache),代理缓存(proxy cache),一种特殊的代理服务器
网关
gateway 类似于服务器的代理,http/ftp网关,接收http,再去请求ftp,最后转成http报文回传
隧道
tunnel 用于ssl(加密的安全套接字层)数据传送,通过http建立隧道,再发些其他数据
agent代理
其实就是指浏览器,类浏览器客户端