HTTP协议简介

HTTP 全称是 Hyper Text Transfer Protocol 即:超文本传输协议
HTTP 是应用层协议
HTTP 是一个基于请求/响应模式的、无状态的协议 (Request/Response)

一个完整的URL

URL (Uniform Resource Locator) 用于描述一个网络上的资源

基本格式如下 :
schema://host[:port#]/path/…/[?query_string][#anchor]

字段 解释
schema 指定低层使用的协议(例如:http, https, ftp)
host HTTP服务器的IP地址或者域名
port# HTTP服务器的默认端口是80, 这种情况下端口号可以省略。如果使用了别的端口, 必须指明, 例如 //www.greatytc.com/:8080/
path 访问资源的路径
query_string 发送给http服务器的数据
anchor

一个URL :

一个URL

HTTP的Request/Response

Request的结构

Request的结构如下图所示 :

在MAC上我使用Charles来抓包.

Charles抓到的baidu请求
Headers中常出现的字段
  1. Accept
    浏览器端可以接受的媒体类型 (通配符 * 代表任意类型)
    例如: Accept: / 代表浏览器可以处理所有类型 (通常情况下都是这个)

  2. Content-Type
    内容类型?
    例如: Content-Type: application/x-www-form-urlencoded

  3. Accept-Encoding
    浏览器申明自己接收的编码方法, 通常指定压缩方法, 是否支持压缩, 支持什么压缩方法(gzip,deflate)
    注意:这不是指字符编码
    例如: Accept-Encoding: gzip

  4. User-Agent
    告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本

  5. Connection
    例如: Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接

    例如: Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。

  6. Content-Length
    发送给HTTP服务器数据的长度
    例如: Content-Length: 38

  7. Host (发送请求时,该Header是必需的)
    请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的

  8. Cookie
    最重要的header, 将cookie的值发送给HTTP 服务器

Response的结构

有下图可以参考 :

Response结构
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • http 简介 协议是指计算机通信网络中两台计算机之间进行通信必须共同遵守规则或规定。 http协议,即超文本传输...
    肖金光xjg阅读 450评论 0 3
  • 摘要 本文转自《go web编程》一书,觉得说的比较好,特转过来收藏。 原文地址:web的工作方式,http协议简...
    yorickshan阅读 554评论 0 0
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,528评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,261评论 3 82