HTTP 入门:从一次网页访问看懂请求与响应
每天打开浏览器、点开一个网页,背后都完成了一次 HTTP 对话。理解它,不需要先背很多术语,只要沿着“浏览器发出什么、服务器回什么”这条线走一遍,概念自然就清楚了。
一、HTTP 是什么
HTTP 是浏览器和服务器约定好的“问答语言”。浏览器提问,服务器回答,一次完整访问的核心就是“一问一答”:浏览器先发请求,服务器再回响应。网页、图片、接口数据,很多都走这条路。
二、一次访问经历了什么
以访问某网站首页为例:先把域名解析成服务器地址,再建立连接;用 HTTPS 时,还要先完成加密协商。随后浏览器发出请求,服务器返回页面内容,浏览器再解析并加载图片和样式。地址里的协议、域名、路径,分别回答了“用什么方式、在哪台服务器、要哪个资源”。
三、请求报文里有什么
请求第一行写着方法、路径和协议版本。GET 常用于获取资源,POST 常用于提交数据。请求头里,Host 说明要访问的主机,User-Agent 说明浏览器类型,Accept 说明能接受的返回格式,Cookie 带上之前保存的状态。需要提交内容时,请求体里还会放表单或 JSON 数据。
四、响应报文怎么看
响应第一行是协议版本和状态码。200 表示成功,301 或 302 表示地址变了,404 表示服务器上没有这个资源,500 表示服务器内部出了问题。响应头里,Content-Type 说明返回的是网页还是图片,Cache-Control 告诉浏览器这份内容能不能缓存。
五、三个容易混淆的点
第一,HTTP 和 HTTPS 的差别主要在传输是否加密。第二,404 不等于网络断了,它恰恰说明服务器已收到请求、只是找不到资源。第三,浏览器缓存能提速,也可能让你看到旧页面,排障时先确认是不是缓存问题,往往能少走弯路。
六、动手看一次真实请求
打开浏览器开发者工具的“网络”面板,刷新页面,点开任意一条记录,就能看到请求头、响应头和状态码。再用 curl 加上 -i 参数访问一个地址,也能直接看到响应头。对照着读一遍,请求与响应就不再是抽象概念了。
总结一下:先分清请求与响应,再记住常用方法和状态码,最后用开发者工具看一次真实报文,HTTP 入门就完成了。之后遇到接口联调、页面打不开、资源加载失败,都可以先回到“请求发出去没有、服务器回了什么”这两个问题上找线索。
- 点赞
- 收藏
- 关注作者
评论(0)