本文为HTTP入门学习记录,参考自本视频,本文会以简单易懂的语言向各位介绍什么是HTTP。
什么是HTTP?
一种通信协议
被各类智能终端(手机、电脑、智能电视等等)使用
使用流程
http客户端发起请求,创建到服务器指定端口的TCP连接。
http服务器在端口监听客户端请求
http服务器向客户端返回状态(eg:状态码200)和内容
输入网址后发生了什么?(简版)
Chorme搜索自身的DNS缓存(可以在chrome中输入chrome://net-internals/#dns)
搜索操作系统自身的DNS缓存(浏览器没有找到缓存或者缓存已经失效)
读取本地的HOST文件
-
浏览器发器一个DNS的一个系统调用(宽带运营商提供的API)
宽带运营商服务器查看本身缓存
-
运营商服务器发器一个迭代DNS解析请求,比如访问域名为vagor.cc迭代方式如下:
先访问根域DNS的ip地址,得到了.cc域的ip地址(即持有.cc的组织)
再访问.cc域的ip地址,得到了vagor.cc域的ip地址(即类似于万网的域名提供商)
再访问vagor.cc域的ip地址,找到了vaogr.cc的ip地址
运营商服务器把结果返回操作系统内核同时缓存起来,再返回给浏览器
最后浏览器拿到了vagor.cc的ip地址
浏览器获得域名对应的ip地址后,发起TCP/IP的“三次握手”。这里不详细赘述,请查看链接
-
TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求使用了
比如说,用http的GET方法请求根域里的一个域名,协议建议采用HTTP 1.0的一个协议
服务器端接收到了这个请求,根据路径参数,进过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是网页页面,就会把完整的HTML页面代码返回给浏览器
浏览器拿到了完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS,CSS,图片静态资源,他们同样也是一个个HTTP请求,都需要经过上面的主要七个步骤
浏览器拿到所有资源,进行渲染,最终把一个完整的页面呈现给用户
HTTP的小知识
http请求包含
请求头
包含状态码,通信方式,……请求体(内容)
http1.1里定义的八种方法
GET 向服务器获取资源
POST 向服务器提交资源
PUT 向服务器更新资源
DELETE 向服务器删除资源
HEAD
TRACE
OPTIONS
CONNECT
http状态码
1xx 请求已接受,继续处理
2xx 请求已处理成功
3xx 重定向,需要进一步指令
4xx 客户端错误(eg:请求语法错误)
5xx 服务器错误
http常用状态码
200 成功
400 客户端语法错误
401 未授权
403 已收到请求,拒绝
404 没找到文件
500 服务器发生不可知错误
503 服务器端当前还不能处理请求
后话
如对我的文章感兴趣,请关注微信公众号“每日前端”,每天分享一篇优质前端文章。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。