网络编程-http
- 简介
- 一个简单的请求-响应协议,它通常运行在TCP之上。
http内容
- 超文本
- 包含有超链接和各种多媒体元素标记的文本。这些超文本文件彼此链接,形成网状(web),能此被称为网页。
- 最常见的超文本格式是超文本标记语言HTML
- URL
- 统一资源定位符,用来唯一的标识万维网中的某一个文档
- 由协议,主机和端口(默认80),路径及文件名三部分构成
- http://www.sxtyu.com:80/news/indes.html
- HTTP
- 超文本传输协议
- 一种按照URL指示,将超文本文档从一台主机(服务器)传输到另一台主机(浏览器)的应用层协议
http工作原理
- 请求/响应模型
- 本地浏览器分析超链接中的url
- 本地浏览器向DSN请求分析www.sxtyu.com的ip地址
- DNS将解析出的ip地址202.2.16.21返回浏览器
- 浏览器与服务器建立TCP链接,端口80
- 浏览器请求文档:get/index.html
- 服务器给出响应,将文档index.html发送给浏览器
- 释放TCP链接
- 浏览器显示index.html中的内容
- 链接方式
- 持久连接
- 非持久连接
- 无状态性
- 同一个客户端,第二次访问同一WEB服务器上的页面时,服务器无法知道这个客户曾经访问过。
- HTTP的无状态性简化了服务器的设计,使其更容易支持大量并发的HTTP请求
http报文结构
请求报文
- 从客户端(浏览器)向web服务器发送的请求
- 报文的所有字段都时ASCII码
- 组成
- 请求行
- 方法 空格 url 空格 版本 CRLF(回车换行)
- 例: GET index.html HTTP/1.1
- 首部行
- 多行
- 首部字段名:空格 值 CRLF
- 例:Host: www.sxtyu.com
- CRLF
- 实体
- 完全自定义
- 请求行
返回报文
- 从web服务器到客户端的应答
- 报文的所有字段都时ASCII码
-组成- 状态行
- 版本 空格 状态码 空格 短语 CRLF
- 例:HTTP/1.1 200 OK
- 首部行
- 多行
- 首部字段名: 空格 值 CRLF
- 例:Date: Web,08 May 2008 22
- CRLF
- 实体
- 完全自定义
- 状态行
请求报文中的方法
- 对所请求对象进行的操作,也就时命令
- GET 请求读取一个web页面
- HEAD 请求读取一个web页面的首部
- POST 附加一个命名资源
- PUT 请求存储一个web页面
- DELETE 删除一个web页面
- TRACE 用于测试,要求服务器送回收到的请求
- CONNECT 用于代理服务器
- OPTION 查询特定选项
响应报文中的状态码
-
响应报文状态行中包含的一个3为数字,指明特定的请求是否被满足,如果没有满足,原因时思慕
-
参考资料
-
状态码五类
状态码 含义 例子 1xx 通知信息 100=服务器正在处理客户请求 2xx 成功 200=请求成功(OK) 3xx 重定向 301=页面改变了位置 4xx 客户错误 403=禁止的页面;404=页面未找到 5xx 服务器错误 500=服务器内部错误;503=以后在试
首部字段或消息头
头 | 类型 | 说明 |
---|---|---|
User-Agent | 请求 | 关于浏览器和它平台的消息,如Mozilla5.0 |
Accept | 请求 | 客户端能处理的页面的类型,如text/html |
Accept-Charset | 请求 | 客户端可以接受的字符集,如unicode-1-1 |
Accept-Encoding | 请求 | 客户端能处理的页面编码方式,如gzip |
Accept-Language | 请求 | 客户端能处理的自然语言,如en(英语)、zh-en(简体中文) |
Host | 请求 | 服务器的DNS名称,从URL中提取出来,必需 |
Authorization | 请求 | 客户端的消息凭据列表 |
Cookie | 请求 | 将以前设置的Cookie送回到服务器,可用来作为会话内容 |
Date | 双向 | 消息发送时的日期和时间。 |
Server | 响应 | 关于服务器的信息,如Microsoft-lls/6.0 |
Content-Encoding | 响应 | 内容是如何编码的,如gzip |
Content-Language | 响应 | 页面所使用的自然语言 |
Content-length | 响应 | 以字节计算的页面长度 |
Conten-Type | 响应 | 页面的MIME类型 |
Last-Modified | 响应 | 页面最后被修改的时间和日期,在页面缓存机制中意义重大 |
Location | 响应 | 指示客户端将请求发送给别处,即重新定向到另一个URL |
Set-Cookie | 响应 | 服务器希望客户保存一个cookie |
http代理
- http代理又称web缓存或代理服务区,是一种网络实体,能代表浏览器发出http请求,并将最近的一些请求和响应暂存在本地磁盘中,当请求的web页面先前暂存过,则直接将暂存的页面发给客户端,无锡再次访问internet