初识HTTP
URI URL URL
URI:Uniform Resource Identifier,统一资源标识符
URL:Uniform Resource Locator,统一资源定位符
URN:Uniform Resource Name,统一资源名称
URL和URN相当于URI的子集,我们通常使用URL作为网址
URL包括:
以百度为例:https://www.baidu.com/s?wd=hello&rsv_spt=1#5,网站的地址包含了协议,域名,路径,查询参数,锚点和端口
计算机与服务器的交互
入上图所示,首先用户通过发起请求,之后服务器会在80端口(http)接收请求,服务器返回内容,最后浏览器负责下载返回内容并解析。
请求的示例:
curl -s -v --"https://www.baidu.com"
请求的内容为:GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: * / *
curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
请求的内容为:POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: * / *
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
1234567890
请求的格式为:动词(get、post、put*更新-全部*,patch*更新-部分*、delete) 路径 协议/版本(这些为第一部分)
key:value
key:value
key:value
key:value(第二部分)
第三部分为回车,必不可少的,作用是断开第二部分和第四部分
第四部分为要上传的数据
Content-Length表示内容长度 Content-Type表示一种编码方式
响应的格式为:协议/版本号 状态码 状态解释
同样也是key:value的形式,也分为4部分 ,最后一部分为要下载地数据
HTTP协议基于TCP/IP
TCP(transmission control protocal)传输控制协议
TCP协议和UDP协议的区别:TCP是可靠的,面向链接的,相对于UDP较慢;UDP是不可靠,不面向连接、相对TCP较快。
TCP的三次握手:每次建立连接前,客户端和服务器总会进行三次对话才开始正式传输内容。
大概内容:我要连接你,可以吗?好的,我准备好了,连吧。那我连了啊!
IP:
分为内网和外网,他们之间通过路由器来链接。切内外网之间不可直接相互访问,但是内网与内网、外网与外网可以相互访问。
本机IP:127.0.0.1
想要访问一个设备端口是必不可少的,端口可以理解为是谁在给你服务。
0~1023这1024个端口是服务器留给管理员的,普通用户无法使用,如果一个端口正在服务,则不能再次使用这个端口(一对一服务),如果想用这个端口必须终止当前的服务。