+
+
Posts List
  1. HTTP的基础概念
  2. TCP/IP中的位置
  3. HTTP的请求和响应
  4. HTTP的报头
  5. 抓包工具
  6. HTTP协议相关补充

HTTP协议

HTTP的基础概念

  • 无状态:对事物处理没有记忆,需要重传
  • 支持C/S:支持客户/服务器模式,可以在本地软件集成
  • URL:有固定的格式
1
http://host[":"port][abs_path]
  • http http协议
  • host 可用的主机域名或ip地址
  • port 端口
  • abs_path 资源路径(URI)

TCP/IP中的位置


应用层协议,处于TCP之上的。HTTP端口是80,HTTPS是443,在图片中,当HTTP高于SSL和TLS时就是HTTPS了。

HTTP的请求和响应

永远是由客户端发起请求然后由服务器端回复一个响应。由于无状态,所以服务器无法主动向客户端发送包。
请求

  • 请求行:方法符号+URI+HTTP版本号
    • GET:请求获取URI标识资源 eg. 浏览器访问网页
    • POST:在URI附加资源后附加新的数据
    • HEAD:请求获取URI所标识资源的响应报头
    • PUT:请求服务器储存资源,用URI进行标识
    • DELETE:请求服务器删除当前URI标识的资源
    • TRACE:请求服务器回送的消息,用以诊断和测试连通性
    • CONNECT:保留给将来用
    • OPTIONS:请求查询服务器性能和资源相关需求
  • 消息报头
  • 请求正文/实体内容

响应

  • 状态行(1):HTTP协议版本+响应的状态代码+响应的状态
    • 1开头:指示信息
    • 2开头:成功信息(200 OK)
    • 3开头:表示重定向
    • 4开头:客户端错误(400 语法错误、401 请求未经授权、403 服务器拒绝、404 请求资源不存在)
    • 5开头:服务器错误(500 服务器发生错误、503 服务器当前不能处理)
  • 消息报头(2-6)
  • 响应正文/实体内容(8-)
1
2
3
4
5
6
7
8
9
10
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Content-Length: 2291
Content-Type: text/html
Cache-Control: private

<HTML>
<BODY>
......

HTTP的报头

请求行到内容中间那一块。

  • 普通报头:一部分可以用于所有的请求和响应消息的报头,不用于被传输的实体,只用于被传输的消息 eg. Cache-Control, Date
  • 请求报头:允许客户端向服务器端传递请求的附加信息以及客户端自身的信息 eg. Accept-Language
  • 响应报头:允许服务器传递不能放在状态行的附加响应信息,以及关于服务器的信息和对Request-URI标识资源进行下一步访问的信息 eg. Server
  • 实体报头:实体由实体报头和实体正文组成,实体报头定义了关于实体正文和请求所标识资源的元信息 eg. Content-Encoding

抓包工具

  • Chrome
  • Firefox
  • Wireshark
  • 科来:相对于Wireshark,有一些数据存放的功能特别好用

HTTP协议相关补充

  • 高层协议:eg. FTP 文本传输协议 SMTP 电子邮件传输协议 DNS 域名系统服务
  • 代理:中间程序,可作为服务器或客户机,请求在其内部必须被翻译(解释甚至重写)
  • 网关:中间媒介,与代理不同的是,对于接收网关的机器来说网关就如同于原服务器
  • 通道:通道,两个连接中间的程序,中继关闭时通道消失
  • HTTP-网络攻击:以模块化方式对高层协议进行分析处理,入侵检测设备
  • HTTP-拒绝攻击:POST方法时可以设置长度,传输完成之前服务器内存不会释放,用来耗尽服务器内存,在其他用户看来服务器失去响应
  • HTTP-指纹识别:记录不同服务器对HTTP执行微小差别,较为复杂

本文作者: rhinoc

本文链接: https://www.rhinoc.top/web_3/

版权声明: 本博客所有文章除特别声明外,均采用BY-NC-SA 4.0国际许可协议,转载请注明。

打赏
Love U 3000
  • Through WeChat
  • Through Alipay