初探 超文本传输协定 HTTP


图片来源:MDN

HTTP是网路世界资讯交换的基础,这项发明一开始是为了提供发布和接收HTML页面的方法,请求的资源会用URL来表示。

在网路的世界里拥有资源的会被称为服务器,请求资源的则称为客户端(通常是浏览器)。

比方说各位铁人每天发表文章的同时,浏览器就必须告诉服务器说「欸!我要给你一篇文章,帮我存一下」,或是各位铁人彼此观摩他人的文章时,浏览器就必须不断向服务器发送显示文章的请求,

人类之间用不同的语言沟通,那浏览器与服务器之间要怎麽沟通呢?当然不可能用上述那种拟人式的方式,必须要有固定的格式规范才能快速处理人类的需求,HTTP就明确规定了这两者沟通的内容格式。

先来看看标准的请求和回应,无论是请求还是回应都分成三个区块:

  1. start-line:
    请求的start-line包含了要执行的动作,请求的资源和HTTP的版本
    回应的start-line带有HTTP版本,状态码和状态讯息
  2. header
  3. body


图片来源:MDN

HTTP 请求方法:

前面提到在请求的start-line中会包含执行的动作,也称为请求方法,以下我们来看看常见的请求方法

方法 代表行为
GET 取得资料
POST 发送资料给服务器
PUT 更新资料
DELETE 删除资料
PATCH 修改资料

服务器回应方式

如同请求方法,服务器的回应方式也分门别类成五个类型并且用代码去区分:

  • 1XX 讯息
  • 2XX 成功
    • 200 OK
  • 3XX 重新导向
  • 4XX 客户端错误
    • 404 Not found
      例如某位参赛的铁人删除文章後,其他铁人若再点选文章网址就会给予此错误

    • 418 I'm a teapot

418错误源自於愚人节玩笑,据说某些网站对於不想处理的请求会给予此回应 /images/emoticon/emoticon37.gif

  • 5XX 服务器错误

HTTP 和 HTTPS 超简易比较

显而易见的两者之间只差了一个 S ,这个 S 代表的是安全(secure)的意思。由於过往的 HTTP 传输方式,所有资料都是以明文传送,在资料传输的过程中若有骇客窃听时,就会造成资料外泄。於是浏览器公司透过SSL/TLS的技术将文件加密,才有了现在使用的HTTPS。

支撑网路世界运作的技术和所需的知识量真的无比庞大,一日探索HTTP虽然只看到非常表面的概念,还是觉得收获满满~

参考资料:
Web Security: an introduction to HTTP
HTTP Messages
从传纸条轻松学习基本网路概念
超文本传输协定


<<:  14. Log X Notification x Slack

>>:  什麽是 ArchiMate?

DAY30-EXCEL统计分析:完赛!结语

终於来到第30天了!!! 其实自己也是透过这次的比赛机会而学到了不少,上网查了资料又买书研究,一点一...

JS Library 学习笔记:Three.js 初见面,在2D画面创造三维世界 (四)

在真实世界中,物体因为反射光进我们的眼中,而能被看见;因此,除了物体形状外,材质与光之间的关系是3D...

D15 - 如何用 Apps Script 自动化地创造与客制 Google Docs?(二)快速生出大量寄件信封资料

今天的目标 每逢过年过节,不时会收到些礼物或送出些礼物,但要怎麽样依据不同的对象,来客制化我们的内容...

day7: CSS style 规划 - CSS in JS(emotion 使用 - 1)

在上一篇我们介绍的 CSS in JS, 那这次我们来使用 CSS in JS 的框架 emotio...

[Day19]程序菜鸟自学C++资料结构演算法 – 二元搜寻树(Binary Search Tree,BST)

前言:昨天先烧为带大家认识最简单的搜寻类型,今天要来介绍之前有稍微提到的二元搜寻树,并实作给大家看看...