HTTP初步学习(一)

####本次随笔主要是在写爬虫时遇到一些有关http的知识,故借阅一本《图解HTTP》来对http进行初步的了解

>序:HTTP虽然叫做超文本"传输"协议,其实为超文本"转移"协议

1. TCP/IP协议簇是整个互联网相关的各种协议簇的总称。

2. URI和URL:URI是统一资源标识符,URL是统一资源定位符

一:简单的http协议:

发送协议的请求 是 GET 

>GET /index.htm HTTP/1.1
>Host: hackr.jp

其返回的是这个文件的资源,get是用来请求访问已被URL识别的资源

POST:用来传输实体的主体,post的目的是为了传输实体的主体,并不是为了获取响应的主题内容

请求

请求 POST /submit.cgi HTTP/1.1
Host: www.hackr.jp
Content-Length: 1560(1560字节的数据)
响应 返回 submit.cgi 接收数据的处理结果

PUT:是用来传递文件的,就像FTP协议的文件上传一样  

请求   PUT /example.html HTTP/1.1
    Host: www.hackr.jp
    Content-Type: text/html
    Content-Length: 1560(1560 字节的数据)
响应   1     响应返回状态码 204 No Content(比如 :该 html 已存在于服务器上)     响应1 其实就死响应成功但是不返回数据

DELETE 与 PUT相反,用来删除文件。按照URI指定资源进行删除  

请求  DELETE /example.html HTTP/1.1
    Host: www.hackr.jp
响应   响应返回状态码 204 No Content(比如 :该 html 已从该服务器上删除)

HEAD:获得报文首部
HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认
URI 的有效性及资源更新的日期时间等。


和 GET 一样,但不返回报文主体

使用 HEAD 方法的请求·响应的例子
请求 HEAD /index.html HTTP/1.1
  Host: www.hackr.jp
响应 返回index.html有关的响应首部

 注意这个只需要返回首部就能知道
 
OPTIONS:询问支持的方法(即可知道该服务器支持何种方法查询)
 

使用 OPTIONS 方法的请求·响应的例子
请求   OPTIONS * HTTP/1.1
    Host: www.hackr.jp
响应   HTTP/1.1 200 OK
    Allow: GET, POST, HEAD, OPTIONS
  (返回服务器支持的方法)

CONNECT:要求用隧道协议连接代理
CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协
议进行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接
层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容
加 密后经网络隧道传输。
CONNECT 方法的格式如下所示。


CONNECT 代理服务器名:端口号 HTTP版本

响应的例子:

请求   CONNECT proxy.hackr.jp:8080 HTTP/1.1
    Host: proxy.hackr.jp
响应   HTTP/1.1 200 OK(之后进入网络隧道)

使用cookie的状态管理:

原因:http是无状态协议,不会在服务器端存储太多信息,而又要使web页面和服务器端多次交互时让服务端记住用户登录web的状态,这时就引入了一个cookie 用来记住登录状态。

没有cookie

存有cookie的请求

  

####本次随笔主要是在写爬虫时遇到一些有关http的知识,故借阅一本《图解HTTP》来对http进行初步的了解

>序:HTTP虽然叫做超文本"传输"协议,其实为超文本"转移"协议

1. TCP/IP协议簇是整个互联网相关的各种协议簇的总称。

2. URI和URL:URI是统一资源标识符,URL是统一资源定位符

一:简单的http协议:

发送协议的请求 是 GET 

>GET /index.htm HTTP/1.1
>Host: hackr.jp

其返回的是这个文件的资源,get是用来请求访问已被URL识别的资源

POST:用来传输实体的主体,post的目的是为了传输实体的主体,并不是为了获取响应的主题内容

请求

请求 POST /submit.cgi HTTP/1.1
Host: www.hackr.jp
Content-Length: 1560(1560字节的数据)
响应 返回 submit.cgi 接收数据的处理结果

PUT:是用来传递文件的,就像FTP协议的文件上传一样  

请求   PUT /example.html HTTP/1.1
    Host: www.hackr.jp
    Content-Type: text/html
    Content-Length: 1560(1560 字节的数据)
响应   1     响应返回状态码 204 No Content(比如 :该 html 已存在于服务器上)     响应1 其实就死响应成功但是不返回数据

DELETE 与 PUT相反,用来删除文件。按照URI指定资源进行删除  

请求  DELETE /example.html HTTP/1.1
    Host: www.hackr.jp
响应   响应返回状态码 204 No Content(比如 :该 html 已从该服务器上删除)

猜你喜欢

转载自www.cnblogs.com/kromite/p/11124843.html