HTTP协议简介

HTTP协议简介

image

HTTP是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

  • HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:
    http://host[":"port][abs_path]
    http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。

  • HTTP报文

  • 请求报文(HTTP Request)

    HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:

    <method> <request-URL> <version>
     <headers>
    
     <entity-body>
    

    HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而 HTTP 中的GET,POST,PUT,DELETE就对应着对这个资源的查,增,改,删4个操作。

    • GET用于信息获取,而且应该是安全的 和 幂等的。

      所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。

      幂等的意味着对同一URL的多个请求应该返回同样的结果。

  • 响应报文(HTTP Response)

    HTTP 响应与 HTTP 请求相似,HTTP响应也由3个部分构成,分别是:

    • 状态行

    • 响应头(Response Header)

    • 响应正文
      状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。

    • 常见的状态码有如下几种:

      • 200 OK 客户端请求成功
      • 301 Moved Permanently 请求永久重定向
      • 302 Moved Temporarily 请求临时重定向
      • 304 Not Modified 文件未修改,可以直接使用缓存的文件。
      • 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。
      • 401 Unauthorized 请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用
      • 403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
      • 404 Not Found 请求的资源不存在,例如,输入了错误的URL
      • 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。
      • 503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。
  • Example

    • 上面的介绍可能听的有点迷糊,我们来实际操作一下

      用Chrome打开Blog
      按下键盘上的F12键,打开开发人员工具

      image

      点击红框内的Network可以看到当前资源加载情况(如果Network项中为空白就在网页上刷新一遍再切换回来看看)
      点击其中一个资源
      [图片上传失败...(image-daa578-1548249118307)]
      这时候可以看到右侧有一个Headers栏已经打开

      其中的General包括了上面我们讲的请求URL,请求方法,相应的状态码以及一些其他的东西

      Response Headers响应头及一些相关信息

      Request Headers请求头包含我们电脑向服务器发起请求的请求头信息,可以看到其中user-agent包含了我们的电脑信息

      `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36`
      

      Mozila是当时浏览器大战留下来的小玩意,表示伪装成Mozilla排版引擎的浏览器以达到兼容
      ,Windows NT 10.0表明了我们的系统内核版本,AppleWebKit/537.36 (KHTML, like Gecko)表示浏览器所使用的平台及浏览器平台的细节,Chrome/62.0.3202.75 Safari/537.36是被浏览器用于指示特定的直接由浏览器提供或者通过第三方提供的可用的增强功能。

      更多详细内容请到HTTP协议详解了解

      当我们写一个爬虫时,很多时候都是在用GET、POST请求方法,通过请求库向服务器请求数据,获取到的数据再进行处理。有些时候网站不想让你抓取他们的数据,就会根据一些请求信息进行排查,像User Agent、Host、Referer、IP这都是排查的重点,所以在更高级的爬虫学习中,我们会对请求信息进行伪造,以达到欺骗对方反爬虫逻辑的目的

首发于个人博客Bismuth

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 摘要 本文转自《go web编程》一书,觉得说的比较好,特转过来收藏。 原文地址:web的工作方式,http协议简...
    yorickshan阅读 541评论 0 0
  • http 简介 协议是指计算机通信网络中两台计算机之间进行通信必须共同遵守规则或规定。 http协议,即超文本传输...
    肖金光xjg阅读 420评论 0 3
  • 简介 超文本传输协议,属于应用层,由请求和响应构成,是一个标准的客户端服务器模型。HTTP通常承载与TCP协议之上...
    明明就_c565阅读 316评论 0 1
  • HTTP:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:Wor...
    IT老马阅读 6,905评论 0 9
  • 坐在车上,两旁风景,你只能看到一旁,这样好像很容易让自己深思。车开的那么快,茂密的树木迅速的往后退,你在想...
    时光时分阅读 221评论 0 0