http通信相关知识
2014-04-22 18:14
302 查看
1,在浏览器输入url后先解析通过DNS服务器解析域名获取ip,并把ip返回给浏览器,浏览器根据ip查找服务器,并于服务器指定端口建议tcp连接(默认端口:80)
2,连接建立后浏览器向服务器发送http请求
一个典型的http请求头部信息
GET /book/index.html HTTP 1.1 // 请求行 (方法字段[get/post/head] url路径 http协议 )
Host: // 头部行 (主机 )
User-Agent:Mozilla/5.0 // 用户代理 使用的浏览器
referer: http: // 客户是从那个页面去访问服务器的(防盗链)
Cookie: // cookie
Accept:text/html,image/* // 用于指定客户端可以接受的MIME类型
if-Modified-since: //浏览器对资源的最后缓存时间
Accept_language:zh-cn;en-us //浏览器希望服务器返回哪个国家的语言文档,可可指定多个
Accept-Encoding: gzip, deflate // 客户机可支持的数据压缩格式
Accept_Charset: //客户端支持的编码类型
Connection:close //(是否建立持久连接 close/keep-alive)
3,服务器返回响应消息头
一个常见的响应消息头
HTTP1.1 200 ok //状态行 使用的协议 状态码 原因字段
Date:thu,13 otc 2010 01:22:13 GMT // 服务器响应创建并返回的时间
Server:Apache/2.2.9(unix) // 主机和服务器
Last_Modified:Mon,22 Jun 2008 02:21:12 // 请求对象创建或最后一次修改的时间,与建立高速缓存有关
Connection:close // 服务器发送响应后关闭tcp连接
Content-Encoding // 服务器返回的数据压缩格式,有三种gzip,compress,deflate,都是压缩算法
Content-Language // 服务器返回的语言
Content_length: 1123 // 发送的对象的字节数
Content-Type:text/html // 返回对象的MIME类型是由CONTENT-TYPE正式指出的,而不是有文件拓展名指出
Transfer-Encoding: //告诉浏览器数据传输的编码 当不能预先确定报文体的长度时,不可能在头中包
含Content-Length域来指明报文体长度,此时就需要通过Transfer-Encoding域 来确
定报文体长度。通常情况下,Transfer-Encoding域的值应当为chunked,表明采用
chunked编码方式来进行报文体的传输。chunked编码的基本方法是将大块数据分
解成多块小数据,每块都可以自指定长度.
Refresh: //告诉浏览器多长时间定时刷新
Expries: //控制浏览器缓存数据的时间(0,-1控制浏览器不要缓存)
Cache-Contronl:no-cache
Pragma:no-cache
以上上个头一起作用,控制所浏览器不要缓存数据
附:http响应状态行状态码
200:服务器成功返回网页
301:永久移动,所请求的网页已经永久移动到新位置,服务器将请求者重定向到新位置
304:未修改,自从上次请求后网页的内容未修改,返回此响应时,服务器不会返回网页内容
400:请求错误;服务器不能解析请求语法
404:未找到请求的网页
500:服务器内部错误,无法完成请求
502:错误网关,服务器作为网关或代理,从上游服务器收到无效响应
505:请求http协议版本不受支出
3.返回响应体
4.关闭链接
2,连接建立后浏览器向服务器发送http请求
一个典型的http请求头部信息
GET /book/index.html HTTP 1.1 // 请求行 (方法字段[get/post/head] url路径 http协议 )
Host: // 头部行 (主机 )
User-Agent:Mozilla/5.0 // 用户代理 使用的浏览器
referer: http: // 客户是从那个页面去访问服务器的(防盗链)
Cookie: // cookie
Accept:text/html,image/* // 用于指定客户端可以接受的MIME类型
if-Modified-since: //浏览器对资源的最后缓存时间
Accept_language:zh-cn;en-us //浏览器希望服务器返回哪个国家的语言文档,可可指定多个
Accept-Encoding: gzip, deflate // 客户机可支持的数据压缩格式
Accept_Charset: //客户端支持的编码类型
Connection:close //(是否建立持久连接 close/keep-alive)
3,服务器返回响应消息头
一个常见的响应消息头
HTTP1.1 200 ok //状态行 使用的协议 状态码 原因字段
Date:thu,13 otc 2010 01:22:13 GMT // 服务器响应创建并返回的时间
Server:Apache/2.2.9(unix) // 主机和服务器
Last_Modified:Mon,22 Jun 2008 02:21:12 // 请求对象创建或最后一次修改的时间,与建立高速缓存有关
Connection:close // 服务器发送响应后关闭tcp连接
Content-Encoding // 服务器返回的数据压缩格式,有三种gzip,compress,deflate,都是压缩算法
Content-Language // 服务器返回的语言
Content_length: 1123 // 发送的对象的字节数
Content-Type:text/html // 返回对象的MIME类型是由CONTENT-TYPE正式指出的,而不是有文件拓展名指出
Transfer-Encoding: //告诉浏览器数据传输的编码 当不能预先确定报文体的长度时,不可能在头中包
含Content-Length域来指明报文体长度,此时就需要通过Transfer-Encoding域 来确
定报文体长度。通常情况下,Transfer-Encoding域的值应当为chunked,表明采用
chunked编码方式来进行报文体的传输。chunked编码的基本方法是将大块数据分
解成多块小数据,每块都可以自指定长度.
Refresh: //告诉浏览器多长时间定时刷新
Expries: //控制浏览器缓存数据的时间(0,-1控制浏览器不要缓存)
Cache-Contronl:no-cache
Pragma:no-cache
以上上个头一起作用,控制所浏览器不要缓存数据
附:http响应状态行状态码
200:服务器成功返回网页
301:永久移动,所请求的网页已经永久移动到新位置,服务器将请求者重定向到新位置
304:未修改,自从上次请求后网页的内容未修改,返回此响应时,服务器不会返回网页内容
400:请求错误;服务器不能解析请求语法
404:未找到请求的网页
500:服务器内部错误,无法完成请求
502:错误网关,服务器作为网关或代理,从上游服务器收到无效响应
505:请求http协议版本不受支出
3.返回响应体
4.关闭链接
相关文章推荐
- http socket 等通信协议相关基知识理解
- http协议相关知识
- http相关知识 - (2)状态管理 - cookie
- Cookies 和http请求相关知识
- 转:利用HTTP_X_FORWARDED_FOR获取客户端IP(http代理的相关知识)
- 网络协议(Http,TCP/IP Socket)相关知识
- iOS http网络请求相关知识总结
- 【java程序员理解HTTP】【1】HTTP相关知识
- 【经验总结】Http,网页访问,HttpRequest,HttpResponse相关的知识
- Request.ServerVariables变量意义. http代理相关知识【转载】
- 【通信基础知识】白噪声、相关解调和相干解调
- http请求相关知识及ajax
- HttpClient的相关知识
- http协议相关知识-网络基础
- 通信相关基础知识0(FFT相关第一篇--傅里叶分析之掐死教程完整版)
- 利用HTTP_X_FORWARDED_FOR获取客户端IP(http代理的相关知识)
- Android中的Http通信(一)之Http协议基本知识
- Android中HTTP通信基本知识
- HTTP相关知识 --转载
- http的相关的知识总结