1990 年,Tim Berners-Lee 发明了万维网(World Wide Web)。
URL(Uniform Resource Locator)
标准格式:协议类型:[//服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]
超文本传输协议(HTTP)的统一资源定位符将从因特网获取信息的五个基本元素包括在一个简单的地址中:
- 传送协议。
- 层级URL标记符号(为[//],固定不变)
- 访问资源需要的凭证信息(可省略)
- 服务器。(通常为域名,有时为IP地址)
- 端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
- 路径。(以“/”字符区别路径中的每一个目录名称)
- 查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
- 片段。以“#”字符为起点以http://zh.wikipedia.org:80/w/index.phptitle=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes 为例, 其中:
1 http,是协议;
2 zh.wikipedia.org,是服务器;
3 80,是服务器上的网络端口号;
4 /w/index.php,是路径;
5 ?title=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2&printable=yes,是询问。
DNS(Domain Name System)
输入域名,eg: nslookup baidu.com
orping baidu.com
输出 IP。
请求与响应
- 浏览器负责发起请求。2. 服务器在 80 端口接收请求。3. 服务器负责返回内容(响应)。4. 浏览器负责下载响应内容。
ps:HTTP 的作用是指导浏览器和服务器如何进行沟通。
请求的格式
- 动词(GET POST PUT[整体更新] PATCH[局部更新] DELETE HEAD OPTIONS) 路径(路径包括「查询参数」,不包括「锚点路径」默认为 /) 协议/版本
- Key1: value1 Key2: value2 Key3: value3 ...
Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0 - 第三部分永远都是一个回车(\n)
- 要上传的数据(第四部分可以为空)
响应的格式
- 协议/版本号 状态码 状态解释
- Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html(遵循 MIME 规范,标注第 4 部分的格式) - 要下载的内容
ps:
1xx 信息响应,不常用
2xx 成功响应表示成功
3xx 重定向表示滚吧
4xx 客户端错误表示你丫错了
5xx 服务端错误表示好吧,我错了