HTTP首部(请求头,响应头)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP首部(请求头,响应头)相关的知识,希望对你有一定的参考价值。

参考技术A 一次HTTP请求或响应的首部包括三个部分,报文首部,空行,以及报文主体。其中报文首部在请求和响应中有所不同,参见下图(图片来自《图解HTTP》一书):

区别:请求行相比状态行,要多一个URI标识,因为要说明请求的资源;另外还有各自的请求首部字段或响应首部字段。

Cookie: 属于请求首部,携带符合条件的Cookie(domain,path,expires)发送至服务器。
Set-Cookie: 属于响应首部,告诉客户端需要保存哪些Cookie值,包括要种Cookie的domain,path,expires。

除了文中所列举的首部字段之外,还有很多其他的首部字段,感兴趣的朋友可以通过其他文章或资料来学习。

HTTP协议

一、主要特点:简单快捷,灵活,无连接,无状态

二、报文组成部分

  请求报文:请求行,请求头,空行,请求体

  响应报文:响应行,响应头,空行,响应体

三、HTTP方法

GET获取资源

POST传输资源

PUT更新资源

DELETE删除资源

HEAD获得报文首部

四、GET和POST区别

GET在浏览器回退时是无害的,POST会再次请求

GET产生的URL地址可以被收藏,POST不可以

GET请求会被浏览器主动缓存,POST不会缓存除非手动设置

GET只能进行url编码,POST支持多种编码方式

GET请求参数完整保留在浏览器历史记录,POST参数不会被保留

GET请求在URL中传送参数是有长度限制的,POST没有限制

对参数的数据类型,GET只接受ASCII字符,POST没有限制

GET参数暴露在URL上,不能用来传递敏感信息

GET参数通过URL传递,POST放在Request body中

 五、HTTP状态码

1XX指示信息

2XX成功  200

3XX重定向  

4XX客户端错误

5XX服务器错误

六、持久连接、管线化

持久连接不会再次请求,HTTP1.1版本支持

管线化基于无连接,将多次请求打包只请求一次,响应同样,而不是多次请求响应;

只有GET和HEAD请求可以进行管线化,POST有所限制

初次创建连接不应启动管线机制,因为服务器不一定支持HTTP1.1版本的协议

 

以上是关于HTTP首部(请求头,响应头)的主要内容,如果未能解决你的问题,请参考以下文章

HTTP首部都有哪些字段?

HTTP协议HTTP请求和响应

Python连载59-HTTP首部字段和消息头,Thinker简介

HTTP结构

HTTP协议

httpclient怎么发送请求并携带Cookie