Server(服务端)、Client(客户端)
浏览器发出请求,服务器在80端口接收请求;服务器返回内容(响应),浏览器下载相应内容
端口21:ftp
端口443:https
端口1080:代理服务器
端口3306:MySQL
端口80:http
HTTP:指导浏览器和服务器如何进行沟通
请求
命令curl
crul[参数 URL]
参数有
GET:获取内容
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.54.0
> Accept: */*
> Lxx: xxx
HTTP/1.1 —>协议
主机 —> 域名
* / * —> 接收任何东西
POST:上传内容
POST / HTTP/1.1
Host: www.bidu.com
User-Agent: curl/7.54.0
请求的格式
1 动词 路径 协议/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
4 要上传的数据
- 请求最多包含四部分,最少包含三部分
- 第三部分永远都是一个回车(\n)
- 动词有GET POST PUT PATCH DELETE HEAD OPTIONS等
- 这里的路径包括【查询参数】,但不包括【锚点】
- 没有写路径,路径默认为/
- 第二部分中的Content-Type标注了第四部分的格式
- GET:获取
- POST:新增或上传
- PUT:更新(整体更新,)
- PATCH:更新(部分更新,)
- DELETE:删除
响应
示例
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<!DOCTYPE html>
GET和POST请求对应的响应可以是一样的,也可以不一样
响应的格式
1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容
- 状态码,记住背熟
- 状态解释没什么用
- 第二部分的Content-Type标注了第四部分的格式
- 第二部分的Content-Type遵循MIME原则
状态码:
- 1XX 不常用
- 2XX 表示成功
- 3XX 表示滚吧
- 4XX 表示你错了
- 5XX 表示好吧,我错了
常用的13个状态码
- 状态码200 表示请求已成功
- 状态码204 表示服务器成功处理了请求,没有返回任何内容
- 状态码206 表示已经处理了部分GET请求
- 状态码301 表示永久重定向,请求的资源已经永久搬到了其他位置
- 状态码302 表示临时重定向,请求的资源临时搬到了其他位置
- 状态码303 表示请求资源存在另一个URI,应使用GET定向获取请求资源
- 状态码304 表示客户端发送附带条件的请求时,条件不满足
- 状态码400 表示请求报文存在语法错误或参数错误,服务器不理解
- 状态码401 表示发送的请求需要有HTTP认证信息或是认证失败了
- 状态码403 表示对请求资源的访问被服务器拒绝了
- 状态码404 表示服务器找不到请求的资源
- 状态码500 表示服务器执行请求时出错了
- 状态码503 表示服务器超负载或正停机维护,无法处理请求
网友评论