博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是HTTP及相关知识
阅读量:6216 次
发布时间:2019-06-21

本文共 1223 字,大约阅读时间需要 4 分钟。

本文为HTTP入门学习记录,参考自,本文会以简单易懂的语言向各位介绍什么是HTTP。

什么是HTTP?

  1. 一种通信协议

  2. 被各类智能终端(手机、电脑、智能电视等等)使用

使用流程

  1. http客户端发起请求,创建到服务器指定端口的TCP连接。

  2. http服务器在端口监听客户端请求

  3. http服务器向客户端返回状态(eg:状态码200)和内容

输入网址后发生了什么?(简版)

  1. Chorme搜索自身的DNS缓存(可以在chrome中输入chrome://net-internals/#dns)

  2. 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或者缓存已经失效)

  3. 读取本地的HOST文件

  4. 浏览器发器一个DNS的一个系统调用(宽带运营商提供的API)

    1. 宽带运营商服务器查看本身缓存

    2. 运营商服务器发器一个迭代DNS解析请求,比如访问域名为vagor.cc迭代方式如下:

      1. 先访问根域DNS的ip地址,得到了.cc域的ip地址(即持有.cc的组织)

      2. 再访问.cc域的ip地址,得到了vagor.cc域的ip地址(即类似于万网的域名提供商)

      3. 再访问vagor.cc域的ip地址,找到了vaogr.cc的ip地址

    3. 运营商服务器把结果返回操作系统内核同时缓存起来,再返回给浏览器

    4. 最后浏览器拿到了vagor.cc的ip地址

  5. 浏览器获得域名对应的ip地址后,发起TCP/IP的“三次握手”。这里不详细赘述,请查看

  6. TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求使用了

    比如说,用http的GET方法请求根域里的一个域名,协议建议采用HTTP 1.0的一个协议
  7. 服务器端接收到了这个请求,根据路径参数,进过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是网页页面,就会把完整的HTML页面代码返回给浏览器

  8. 浏览器拿到了完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS,CSS,图片静态资源,他们同样也是一个个HTTP请求,都需要经过上面的主要七个步骤

  9. 浏览器拿到所有资源,进行渲染,最终把一个完整的页面呈现给用户

HTTP的小知识

http请求包含

  1. 请求头

    包含状态码,通信方式,……

  2. 请求体(内容)

http1.1里定义的八种方法

  1. GET 向服务器获取资源

  2. POST 向服务器提交资源

  3. PUT 向服务器更新资源

  4. DELETE 向服务器删除资源

  5. HEAD

  6. TRACE

  7. OPTIONS

  8. CONNECT

http状态码

  1. 1xx 请求已接受,继续处理

  2. 2xx 请求已处理成功

  3. 3xx 重定向,需要进一步指令

  4. 4xx 客户端错误(eg:请求语法错误)

  5. 5xx 服务器错误

http常用状态码

  1. 200 成功

  2. 400 客户端语法错误

  3. 401 未授权

  4. 403 已收到请求,拒绝

  5. 404 没找到文件

  6. 500 服务器发生不可知错误

  7. 503 服务器端当前还不能处理请求

后话

如对我的文章感兴趣,请关注微信公众号“每日前端”,每天分享一篇优质前端文章。

qrcode_for_gh_8b842238058e_258.jpg

转载地址:http://vnlja.baihongyu.com/

你可能感兴趣的文章
jQuery 3D圆盘旋转焦点图 支持鼠标滚轮
查看>>
非常实用全面的 C++框架,库类等资源
查看>>
VS Code 常用插件
查看>>
kubectl top查看k8s pod的cpu , memory使用率情况
查看>>
fputs
查看>>
手写代码生成器
查看>>
SQL Server 维护计划备份主分区
查看>>
VS2008的安装,OpenCV2.1的安装,以及变量环境的设置
查看>>
Unable to install breakpoint in XXX due to missing line number attributes的解决
查看>>
分享SQL2005 查询表结构的SQL语句
查看>>
Android 手机如何防范吸费插件
查看>>
Copy-On-Write容器之二:CopyOnWriteArraySet
查看>>
ACCESS的分页之道,Access中实现row_number() over()聚合函数功能
查看>>
IOS成长之路-NSMutableURLRequest实现Post请求
查看>>
【Cocos2D-X 】初窥门径(9)播放音乐/音效
查看>>
HDU3930(离散对数与原根)
查看>>
茴香豆的第五种写法---设置ExpandableListView系统自带图标按下效果
查看>>
MSSQL Rebuild(重建)索引
查看>>
Linux_CentOS-服务器搭建 <七>
查看>>
转载:mysql如果数据不存在,则插入新数据,否则更新的实现方法
查看>>