什么是HTTP
HTTP(HyperText Transfer Protocol)超文本传输协议 维基百科
HTTP 的作用就是指导浏览器和服务器如何进行沟通
Client (浏览器)→ HTTP(请求)→Server(80端口)→HTTP响应→Client(浏览器)

浏览器负责发起请求
服务器在 80 端口接收请求
服务器负责返回内容(响应)
浏览器负责下载响应内容
HTTP 请求

请求最多包含四部分(图中1、2、3、4),最少包含三部分。(也就是说第四部分可以为空)
第三部分永远都是一个回车(\n)
动词有 GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS 等
这里的路径包括「查询参数」,但不包括「锚点」
如果你没有写路径,那么路径默认为 /
第 2 部分中的 Content-Type 标注了第 4 部分的格式
用 Chrome 发请求
打开 Network(F12)

地址栏输入网址,如www.baidu.com
在 Network 点击,查看 request,点击「view source」

可以看到请求的前三部分了
如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到
HTTP 响应
请求了之后,应该都能得到一个响应,除非断网了,或者服务器宕机了

状态码是服务器对浏览器说的话
1xx消息——请求已被服务器接收,继续处理
2xx成功——请求已成功被服务器接收、理解、并接受
3xx重定向——需要后续操作才能完成这一请求
4xx请求错误——请求含有词法错误或者无法被执行
5xx服务器错误——服务器在处理某个正确请求时发生错误
状态解释没什么用
第 2 部分中的 Content-Type 标注了第 4 部分的格式
第 2 部分中的 Content-Type 遵循 MIME 规范
用 Chrome 查看响应
打开 Network
输入网址
选中第一个响应
查看 Response Headers,点击「view source」

你会看到响应的前两部分
查看 Response 或者 Preview,你会看到响应的第 4 部分
也可以用命令行发请求并得到响应
用到curl命令,具体可以命令行释义(命令行及命令行释义可以看我相关blog)
如:curl -s -v -H -- "https://www.baidu.com"

请求的内容为
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.59.0
> Accept: */*
>
响应的内容为
< 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: Thu, 07 Jun 2018 13:54:43 GMT
< Etag: "58860411-98b"
< Last-Modified: Mon, 23 Jan 2017 13:24:33 GMT
< Pragma: no-cache
* Server bfe/1.0.8.18 is not blacklisted
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
还有很多可以尝试的curl命令
可以参考链接
本文主要用于个人学习使用,如有侵权请联系我删除。
一些参考:
网友评论