笔记分享:网络基础之HTTP简介

注:图片均来自网络

超文本传输协议HTTP主要特点

  • 支持客户/服务器模式
  • 简单快速
    • 程序规模小,通信速度快
  • 灵活
    • 允许传输任意类型的数据对象
  • 无连接
    • 每次连接,只处理一个请求,节省传输时间
  • 无状态
    • 协议对于事物处理没有记忆

 

HTTP请求结构:

 

HTTP响应结构:

 

请求/响应的步骤:

  • 客户端连接到Web服务器
  • 发送HTTP请求
  • 服务器接收请求并返回HTTP响应
  • 释放连接TCO连接
  • 客户端浏览器解析HTML内容

 

在浏览器地址栏键入URL,按下回车之后经历的流程:

  • DNS解析域名地址,获取对应的IP地址
    • 从本地DNS缓存或者DNS服务器中获取域名的解析
    • 解析域名地址,获取对应的IP地址
  • TCP连接
    • 三次握手
  • 发送HTTP请求
  • 服务器处理请求并返回HTTP报文
  • 浏览器解析渲染页面
  • 连接结束
    • 四次挥手

HTTP状态码:

1xx:指示信息--表示请求已接受

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务端错误--服务器未能实现合法的请求

常见状态码:

200 OK:正常的返回信息。

400 BaeRequest:客户端请求有语法错误,不能被服务器所理解。

401 Unauthorized:请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

404 Not Found:请求资源不存在,eg,输入了错误的URL。

405 Method not Allowed:请求行中指定的请求方法不能被用于请求相应的资源。

500 Internal Server Error:服务器发生不可预期的错误。

503 Server Unavailavle:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

 

GET请求和POST请求的区别:

从三个层面来解答

  • Http报文层面:GET将请求信息放在URL后面,POST放在报文体中。
    • 普通的HTTP都是采用明文传输的,POST请求也一样
  • 数据库层面:GET符合幂等性和安全性,POST不符合。
    • 幂等性表示对数据库的一次操作或多次操作,对数据结果是无影响的。
    • 安全性表示不会对数据库进行修改,因此符合安全性。
    • PUT请求符合幂等性,因为不会添加新的数据
  • 其他层面:GET可以被缓存、被存储,而POST不行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章