Http请求方式和报文

来源:互联网 发布:护肤方法 知乎 编辑:程序博客网 时间:2024/06/05 23:55
HTTP 请求分为三个部分:
状态行、
请求头、
消息主体
<method> <request-URL> <version>
<headers>

<entity-body>
-------------------
HTTP响应也由3个部分构成,分别是:
状态行
响应头(Response Header)
响应正文
HTTP/1.1 200 OK

Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112

<html>...
-------------------

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

 GET /books/?sex=man&name=Professional HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Connection: Keep-Alive
 
POST请求报文示例: 
 POST / HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Content-Type: application/x-www-form-urlencoded
 Content-Length: 40
 Connection: Keep-Alive

 sex=man&name=Professional  

注意:
1、GET 可提交的数据量受到URL长度的限制,HTTP 协议规范没有对 URL 长度进行限制。这个限制是特定的浏览器及服务器对它的限制
2、理论上讲,POST 是没有大小限制的,HTTP 协议规范也没有进行大小限制,出于安全考虑,服务器软件在实现时会做一定限制
3、参考上面的报文示例,可以发现 GET 和 POST 数据内容是一模一样的,只是位置不同,一个在URL里,一个在 HTTP 包的包体里


转自:https://hit-alibaba.github.io/interview/basic/network/HTTP.html  
原创粉丝点击