HTTP协议

一、HTTP协议:组成部分及每部分的详细分解
1、HTTP的作用:规范客户端与服务端交互数据的格式的。
2、版本
HTTP1.0:无状态协议。
HTTP1.1:有状态协议。在一次连接基础上可以与服务器多次交互。
3、在访问某个html页面时,如果某些标签有src这样的属性,浏览器都会再次发出请求(自动)
<img src=""/>
<script src=""/>
<link href=""/>

html文件中只能包含文本。
***4、HTTP协议的组成:
a、请求部分:
a、1请求行:位于第一行
请求方式 请求的资源(URI) 使用的协议
常用的请求方式:
(默认的)GET:表单中的数据会出现在地址栏中,不会出现在请求正文中。(/App1/b.html?username=admin&password=111111)不安全。有长度限制<1KB
POST:表单中的数据会出现在请求正文中。长度无限。
a、2请求头:从第二行开始至第一个空行结束
a、3请求正文:从第一个空行开始到最后

GET /App1/1.html HTTP/1.1 请求行
Accept: */* 请求头
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: localhost:8080
Connection: Keep-Alive
Header1:h1
Header1:h2
//请求正文


常用请求头含义:
*Accept:浏览器可接受的MIME(协议)类型(MIME Type:Tomcatconfweb.xml有文件类型与MIME类型的对应关系)
MIME类型:大类型/具体类型 1.html --->text/html 1.jpg ----->image/jpeg
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
*Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip
Accept-Language:浏览器所希望的语言种类,
Host:初始URL中的主机和端口
*Referer:值是一个URL。表示当前页面是由哪个页面转过来的。(防盗链;广告效果)
*Content-Type:内容类型(请求正文的MIME类型)Content-Type: application/x-www-form-urlencoded
对应表单的enctype="application/x-www-form-urlencoded"属性。
If-Modified-Since:是一个时间。利用这个头与服务器的文件进行比对,如果一致,则从缓存中直接读取文件。
User-Agent:浏览器类型.
Content-Length:表示请求消息正文的长度
*****Cookie:这是最重要的请求头信息之一


b、响应部分:
b、1响应行:位于第一行
使用的协议 响应码 响应码描述
响应码:(目前也就用到了30个左右)
200:正常响应
302/307:资源位置移动了
304:未修改
404:资源不存在
500:服务器内部错误

b、2响应头:从第二行开始至第一个空行结束
b、3响应正文:从第一个空行开始到最后
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"43-1353374734312"
Last-Modified: Tue, 20 Nov 2012 01:25:34 GMT
Content-Type: text/html
Content-Length: 43
Date: Tue, 20 Nov 2012 01:32:57 GMT
Warnning:w1
Warnning:w2

welcome to itheima<br/>
<img src="6.jpg"/>


常用响应头:
*Location: http://www.it315.org/index.jsp指示新的资源的位置。结合302/307来使用,实现的请求重定向。
Server:apache tomcat指示服务器的类型
*Content-Encoding: gzip服务器发送的数据采用的编码类型
Content-Length: 80 告诉浏览器正文的长度
Content-Language: zh-cn服务发送的文本的语言
**Content-Type: text/html; charset=GB2312服务器发送的内容的MIME类型
*Refresh:定时刷新。取值是时间,单位为秒。
在指定的时间后,刷新到别处。Refresh:2;URL=/day04/1.html

*Content-Disposition: attachment; filename=aaa.zip指示客户端下载文件
*****Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie
*以下3个头通知客户端不要缓存:
Expires: -1
Cache-Control: no-cache (1.1)
Pragma: no-cache (1.0)

-=-=-=-=-=-=-=-=-=-=-=-=-=

1、HTTP协议:组成部分及每部分的详细分解

原文地址:https://www.cnblogs.com/yys369/p/5325898.html