HTTP相关的一些基本知识

Posted @红茶不加糖

tags:

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

Http协议的组成部分

http协议主要分为两部分,分别为**请求部分**和**响应部分**

请求部分的组成

请求部分主要分为三块:
1. 请求行:永远存在请求的第一行
2. 请求头:从第二行开始,一直到第一个空行结束
3.  正文,从第一个空行开始,一直到正文结束

响应部分的组成

和请求行的组成是相同的

注意事项

请求最常见的方式有Get和Post两种,Get请求中没有请求体,只有请求行和请求头。Post方法中是有请求体的。

请求部分详解

请求行详解

GET                       请求的方式。(还有POST)
/myapp/2.html             请求的资源。
HTTP/1.1                  使用的协议,及协议的版本。

请求消息头详解

内容说明
Accept告知服务器,客户浏览器所支持的MIME类型。
Accept-Encoding告知服务器,客户浏览器所支持的压缩编码格式。最常用的就是gzip压缩。
Accept-Language告知服务器,客户浏览器所支持的语言。一般都是zh_CN或en_US等。
Referer告知服务器,当前请求的来源。
只有当前请求有来源的时候,才有这个消息头。从地址栏输入的没有来源。
作用:1 投放广告 2 防盗链
Content-Type告知服务器,请求正文的MIME类型。
Content-Length告知服务器,请求正文的长度。
User-Agent浏览器相关信息
Connection: Keep-Alive连接的状态:保持连接
If-Modified-Since告知服务器,客户浏览器缓存文件的最后修改时间。
Cookie(********)会话管理相关,非常的重要

请求正文详解

enctype取值请求正文体现形式示例
application/x-www-form-urlencodedkey=value&key=valueusername=test&password=1234
multipart/form-data此时变成了多部分表单数据。多部分是靠分隔符分隔的。-----------------------------7df23a16c0210
Content-Disposition: form-data; name="username"

test
-----------------------------7df23a16c0210
Content-Disposition: form-data; name="password"

1234
-----------------------------7df23a16c0210
Content-Disposition: form-data; name=“headfile”; filename="C:\\Users\\zhy\\Desktop\\请求部分.jpg"
Content-Type: image/pjpeg
-----------------------------7df23a16c0210

响应部分详解

响应行详解

响应行:

内容说明
HTTP/1.1使用协议的版本。
200响应状态码
OK状态码描述

常用状态码介绍:

状态码说明
200一切都OK>
302/307请求重定向(客户端行为,两次请求,地址栏发生改变)
304请求资源未发生变化,使用缓存
404请求资源未找到
500服务器错误

响应消息头详解

消息头说明
Location请求重定向的地址,常与302,307配合使用。
Server服务器相关信息。
Content-Type告知客户浏览器,响应正文的MIME类型。
Content-Length告知客户浏览器,响应正文的长度。
Content-Encoding告知客户浏览器,响应正文使用的压缩编码格式。常用的gzip压缩。
Content-Language告知客户浏览器,响应正文的语言。zh_CN或en_US等等。
Content-Disposition告知客户浏览器,以下载的方式打开响应正文。
Refresh定时刷新
Last-Modified服务器资源的最后修改时间。
Set-Cookie(*******)会话管理相关,非常的重要
Expires:-1服务器资源到客户浏览器后的缓存时间
Catch-Control: no-catch不要缓存,//针对http协议1.1版本
Pragma:no-catch不要缓存,//针对http协议1.0版本

响应正文详解

就和我们在浏览器上右键查看源文件看到的内容是一样的。如:

<html>
    <head>
        <link rel="stylesheet" href="css.css" type="text/css">
        <script type="text/javascript" src="demo.js"></script>
    </head>
    <body>
        <img src="1.jpg" />
    </body>
</html>

以上是关于HTTP相关的一些基本知识的主要内容,如果未能解决你的问题,请参考以下文章

Flask模板宏的概念和基本使用

IOS开发-OC学习-常用功能代码片段整理

简单的方法来分享/讨论/协作的代码片段?

HTTP相关的一些基本知识

HTTP网络相关协议知识

sublime Text emmet插件使用手册