Http协议


  • 底层知识永不过时!冲!
  • 理解Http协议,动手试,
  • PHP+socket发http协议
  • PHP批量发帖,防盗链;

HTTP协议概念和工作流程

计算机中的协议就像生活中的协议一样,一式双份,双方都遵循这个规范!计算机能全世界互通计算机协议功不可没。类似的还有ftp、http、stmp、pop、tcp/ip等协议。

当你打开一个页面时,客户端就发送请求和服务器建立连接;

服务器就沿着连接,返回响应信息;

客户端收到响应的html代码解析出图片和文字组成页面呈现出来

http协议请求方法

1 GET 请求指定的页面信息,并返回实体主体。
2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5 DELETE 请求服务器删除指定的页面。
6 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7 OPTIONS 允许客户端查看服务器的性能。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。
9 PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

cmd发起请求:

  • ipconfig查看ip
  • telnet localhost 80 //连接本地端口
  • ctrl+】打开回显
  • 输入客户端请求消息
  • 得到服务器响应消息

请求消息:

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成

请求行=请求方法+请求路径+协议版本

请求头=key+value

空行 //这个千万不能省略,这是用来区分请求消息和请求数据的,没有请求数据时可以为空

请求数据 //也可以为空

例子如下:

GET /hello.txt HTTP/1.1    		
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

响应消息:

状态行、消息报头、空行和响应正文

状态行 = 协议版本+状态码+状态

消息报头=key+value

空行

响应正文

例子如下:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。

HTTP 状态码的英文为 HTTP Status Code。。

下面是常见的 HTTP 状态码:

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

程序员最想看到的:200-OK。

程序员不想看到的:500-Internal-Server-Error

本文学习引用自:


文章作者: 冰冰的小屋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 冰冰的小屋 !
  目录