您的位置:首页 > 理论基础 > 计算机网络

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.关闭链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息